@@ -2477,25 +2477,30 @@ def : GCNPat<(i32 (trunc (srl i64:$src0, (i32 ShiftAmt32Imm:$src1)))),
2477
2477
} // end True16Predicate = NotHasTrue16BitInsts
2478
2478
2479
2479
let True16Predicate = UseRealTrue16Insts in {
2480
- def : GCNPat<(rotr i32:$src0, i32:$src1),
2481
- (V_ALIGNBIT_B32_t16_e64 /* src0_modifiers */ 0, $src0,
2482
- /* src1_modifiers */ 0, $src0,
2483
- /* src2_modifiers */ 0, (EXTRACT_SUBREG $src1, lo16),
2484
- /* clamp */ 0, /* op_sel */ 0)>;
2480
+ def : GCNPat <
2481
+ (rotr i32:$src0, i32:$src1),
2482
+ (V_ALIGNBIT_B32_t16_e64 /* src0_modifiers */ 0, $src0,
2483
+ /* src1_modifiers */ 0, $src0,
2484
+ /* src2_modifiers */ 0,
2485
+ (EXTRACT_SUBREG $src1, lo16),
2486
+ /* clamp */ 0, /* op_sel */ 0)
2487
+ >;
2485
2488
2486
- def : GCNPat<
2487
- (i32(trunc(srl i64:$src0, (i32 ShiftAmt32Imm:$src1)))),
2488
- (V_ALIGNBIT_B32_t16_e64 0, /* src0_modifiers */
2489
- (i32(EXTRACT_SUBREG(i64 $src0), sub1)), 0, /* src1_modifiers */
2490
- (i32(EXTRACT_SUBREG(i64 $src0), sub0)), 0, /* src2_modifiers */
2491
- (i16(EXTRACT_SUBREG VGPR_32:$src1, lo16)),
2492
- /* clamp */ 0, /* op_sel */ 0)>;
2493
-
2494
- def : GCNPat<(fshr i32:$src0, i32:$src1, i32:$src2),
2495
- (V_ALIGNBIT_B32_t16_e64 /* src0_modifiers */ 0, $src0,
2496
- /* src1_modifiers */ 0, $src1,
2497
- /* src2_modifiers */ 0, (EXTRACT_SUBREG VGPR_32:$src2, lo16),
2498
- /* clamp */ 0, /* op_sel */ 0)>;
2489
+ def : GCNPat<(i32 (trunc (srl i64:$src0, (i32 ShiftAmt32Imm:$src1)))),
2490
+ (V_ALIGNBIT_B32_t16_e64 0, /* src0_modifiers */
2491
+ (i32 (EXTRACT_SUBREG (i64 $src0), sub1)),
2492
+ 0, /* src1_modifiers */
2493
+ (i32 (EXTRACT_SUBREG (i64 $src0), sub0)),
2494
+ 0, /* src2_modifiers */
2495
+ (i16 (EXTRACT_SUBREG VGPR_32:$src1, lo16)),
2496
+ /* clamp */ 0, /* op_sel */ 0)>;
2497
+
2498
+ def : GCNPat<(fshr i32:$src0, i32:$src1, i32:$src2),
2499
+ (V_ALIGNBIT_B32_t16_e64 /* src0_modifiers */ 0, $src0,
2500
+ /* src1_modifiers */ 0, $src1,
2501
+ /* src2_modifiers */ 0,
2502
+ (EXTRACT_SUBREG VGPR_32:$src2, lo16),
2503
+ /* clamp */ 0, /* op_sel */ 0)>;
2499
2504
} // end True16Predicate = UseRealTrue16Insts
2500
2505
2501
2506
let True16Predicate = UseFakeTrue16Insts in {
0 commit comments