)
>;
-let AddedComplexity = 1 in {
- def : DivergentBinOp<srl, V_LSHRREV_B32_e64>;
- def : DivergentBinOp<sra, V_ASHRREV_I32_e64>;
- def : DivergentBinOp<shl, V_LSHLREV_B32_e64>;
-}
+def : DivergentBinOp<srl, V_LSHRREV_B32_e64>;
+def : DivergentBinOp<sra, V_ASHRREV_I32_e64>;
+def : DivergentBinOp<shl, V_LSHLREV_B32_e64>;
let SubtargetPredicate = HasAddNoCarryInsts in {
def : DivergentBinOp<add, V_ADD_U32_e32>;
def : DivergentBinOp<add, V_ADD_I32_e32>;
def : DivergentBinOp<sub, V_SUB_I32_e32>;
-def : DivergentBinOp<srl, V_LSHRREV_B32_e32>;
-def : DivergentBinOp<sra, V_ASHRREV_I32_e32>;
-def : DivergentBinOp<shl, V_LSHLREV_B32_e32>;
-}
def : DivergentBinOp<adde, V_ADDC_U32_e32>;
def : DivergentBinOp<sube, V_SUBB_U32_e32>;
+}
class divergent_i64_BinOp <SDPatternOperator Op, Instruction Inst> :
GCNPat<