@@ -1972,81 +1972,25 @@ class getIns64 <RegisterOperand Src0RC, RegisterOperand Src1RC,
19721972 RegisterOperand Src2RC, int NumSrcArgs,
19731973 bit HasClamp, bit HasModifiers, bit HasSrc2Mods, bit HasOMod,
19741974 Operand Src0Mod, Operand Src1Mod, Operand Src2Mod> {
1975-
1976- dag ret =
1977- !if (!eq(NumSrcArgs, 0),
1978- // VOP1 without input operands (V_NOP, V_CLREXCP)
1979- (ins),
1980- /* else */
1981- !if (!eq(NumSrcArgs, 1),
1982- !if (HasModifiers,
1983- // VOP1 with modifiers
1984- !if(HasOMod,
1985- (ins Src0Mod:$src0_modifiers, Src0RC:$src0,
1986- Clamp0:$clamp, omod0:$omod),
1987- !if (HasClamp,
1988- (ins Src0Mod:$src0_modifiers, Src0RC:$src0, Clamp0:$clamp),
1989- (ins Src0Mod:$src0_modifiers, Src0RC:$src0)))
1990- /* else */,
1991- // VOP1 without modifiers
1992- !if(HasOMod,
1993- (ins Src0RC:$src0, Clamp0:$clamp, omod0:$omod),
1994- !if (HasClamp,
1995- (ins Src0RC:$src0, Clamp0:$clamp),
1996- (ins Src0RC:$src0)))
1997- /* endif */ ),
1998- !if (!eq(NumSrcArgs, 2),
1999- !if (HasModifiers,
2000- // VOP 2 with modifiers
2001- !if(HasOMod,
2002- (ins Src0Mod:$src0_modifiers, Src0RC:$src0,
2003- Src1Mod:$src1_modifiers, Src1RC:$src1,
2004- Clamp0:$clamp, omod0:$omod),
2005- !con((ins Src0Mod:$src0_modifiers, Src0RC:$src0,
2006- Src1Mod:$src1_modifiers, Src1RC:$src1),
2007- !if(HasClamp, (ins Clamp0:$clamp), (ins))))
2008- /* else */,
2009- // VOP2 without modifiers
2010- !if (HasClamp,
2011- (ins Src0RC:$src0, Src1RC:$src1, Clamp0:$clamp),
2012- (ins Src0RC:$src0, Src1RC:$src1))
2013-
2014- /* endif */ )
2015- /* NumSrcArgs == 3 */,
2016- !if (HasModifiers,
2017- !if (HasSrc2Mods,
2018- // VOP3 with modifiers
2019- !if (HasOMod,
2020- (ins Src0Mod:$src0_modifiers, Src0RC:$src0,
2021- Src1Mod:$src1_modifiers, Src1RC:$src1,
2022- Src2Mod:$src2_modifiers, Src2RC:$src2,
2023- Clamp0:$clamp, omod0:$omod),
2024- !if (HasClamp,
2025- (ins Src0Mod:$src0_modifiers, Src0RC:$src0,
2026- Src1Mod:$src1_modifiers, Src1RC:$src1,
2027- Src2Mod:$src2_modifiers, Src2RC:$src2,
2028- Clamp0:$clamp),
2029- (ins Src0Mod:$src0_modifiers, Src0RC:$src0,
2030- Src1Mod:$src1_modifiers, Src1RC:$src1,
2031- Src2Mod:$src2_modifiers, Src2RC:$src2))),
2032- // VOP3 with modifiers except src2
2033- !if (HasOMod,
2034- (ins Src0Mod:$src0_modifiers, Src0RC:$src0,
2035- Src1Mod:$src1_modifiers, Src1RC:$src1,
2036- Src2RC:$src2, Clamp0:$clamp, omod0:$omod),
2037- !if (HasClamp,
2038- (ins Src0Mod:$src0_modifiers, Src0RC:$src0,
2039- Src1Mod:$src1_modifiers, Src1RC:$src1,
2040- Src2RC:$src2, Clamp0:$clamp),
2041- (ins Src0Mod:$src0_modifiers, Src0RC:$src0,
2042- Src1Mod:$src1_modifiers, Src1RC:$src1,
2043- Src2RC:$src2))))
2044- /* else */,
2045- // VOP3 without modifiers
2046- !if (HasClamp,
2047- (ins Src0RC:$src0, Src1RC:$src1, Src2RC:$src2, Clamp0:$clamp),
2048- (ins Src0RC:$src0, Src1RC:$src1, Src2RC:$src2))
2049- /* endif */ ))));
1975+ dag src0 = !if(!ge(NumSrcArgs, 1),
1976+ !if (HasModifiers,
1977+ (ins Src0Mod:$src0_modifiers, Src0RC:$src0),
1978+ (ins Src0RC:$src0)),
1979+ (ins));
1980+ dag src1 = !if(!ge(NumSrcArgs, 2),
1981+ !if (HasModifiers,
1982+ (ins Src1Mod:$src1_modifiers, Src1RC:$src1),
1983+ (ins Src1RC:$src1)),
1984+ (ins));
1985+ dag src2 = !if(!ge(NumSrcArgs, 3),
1986+ !if (HasSrc2Mods,
1987+ (ins Src2Mod:$src2_modifiers, Src2RC:$src2),
1988+ (ins Src2RC:$src2)),
1989+ (ins));
1990+ dag clamp = !if(HasClamp, (ins Clamp0:$clamp), (ins));
1991+ dag omod = !if(HasOMod, (ins omod0:$omod), (ins));
1992+
1993+ dag ret = !con(src0, src1, src2, clamp, omod);
20501994}
20511995
20521996class getInsVOP3Base<RegisterOperand Src0RC, RegisterOperand Src1RC,
0 commit comments