@@ -1793,7 +1793,6 @@ def : GCNPat <
1793
1793
>;
1794
1794
}
1795
1795
1796
-
1797
1796
/********** ================================ **********/
1798
1797
/********** Floating point absolute/negative **********/
1799
1798
/********** ================================ **********/
@@ -2389,31 +2388,25 @@ def : GCNPat<(i32 (trunc (srl i64:$src0, (i32 ShiftAmt32Imm:$src1)))),
2389
2388
} // end True16Predicate = NotHasTrue16BitInsts
2390
2389
2391
2390
let True16Predicate = UseRealTrue16Insts in {
2391
+ def : GCNPat<(rotr i32:$src0, i32:$src1),
2392
+ (V_ALIGNBIT_B32_t16_e64 /* src0_modifiers */ 0, $src0,
2393
+ /* src1_modifiers */ 0, $src0,
2394
+ /* src2_modifiers */ 0, (EXTRACT_SUBREG $src1, lo16),
2395
+ /* clamp */ 0, /* op_sel */ 0)>;
2392
2396
2393
- def : GCNPat <
2394
- (rotr i32:$src0, i32:$src1),
2395
- (V_ALIGNBIT_B32_t16_e64 /* src0_modifiers */ 0, $src0,
2396
- /* src1_modifiers */ 0, $src0,
2397
- /* src2_modifiers */ 0,
2398
- (EXTRACT_SUBREG $src1, lo16),
2399
- /* clamp */ 0, /* op_sel */ 0)
2400
- >;
2401
-
2402
- def : GCNPat<(i32 (trunc (srl i64:$src0, (i32 ShiftAmt32Imm:$src1)))),
2403
- (V_ALIGNBIT_B32_t16_e64 0, /* src0_modifiers */
2404
- (i32 (EXTRACT_SUBREG (i64 $src0), sub1)),
2405
- 0, /* src1_modifiers */
2406
- (i32 (EXTRACT_SUBREG (i64 $src0), sub0)),
2407
- 0, /* src2_modifiers */
2408
- (i16 (EXTRACT_SUBREG VGPR_32:$src1, lo16)),
2409
- /* clamp */ 0, /* op_sel */ 0)>;
2410
-
2411
- def : GCNPat<(fshr i32:$src0, i32:$src1, i32:$src2),
2412
- (V_ALIGNBIT_B32_t16_e64 /* src0_modifiers */ 0, $src0,
2413
- /* src1_modifiers */ 0, $src1,
2414
- /* src2_modifiers */ 0,
2415
- (EXTRACT_SUBREG VGPR_32:$src2, lo16),
2416
- /* clamp */ 0, /* op_sel */ 0)>;
2397
+ def : GCNPat<
2398
+ (i32(trunc(srl i64:$src0, (i32 ShiftAmt32Imm:$src1)))),
2399
+ (V_ALIGNBIT_B32_t16_e64 0, /* src0_modifiers */
2400
+ (i32(EXTRACT_SUBREG(i64 $src0), sub1)), 0, /* src1_modifiers */
2401
+ (i32(EXTRACT_SUBREG(i64 $src0), sub0)), 0, /* src2_modifiers */
2402
+ (i16(EXTRACT_SUBREG VGPR_32:$src1, lo16)),
2403
+ /* clamp */ 0, /* op_sel */ 0)>;
2404
+
2405
+ def : GCNPat<(fshr i32:$src0, i32:$src1, i32:$src2),
2406
+ (V_ALIGNBIT_B32_t16_e64 /* src0_modifiers */ 0, $src0,
2407
+ /* src1_modifiers */ 0, $src1,
2408
+ /* src2_modifiers */ 0, (EXTRACT_SUBREG VGPR_32:$src2, lo16),
2409
+ /* clamp */ 0, /* op_sel */ 0)>;
2417
2410
} // end True16Predicate = UseRealTrue16Insts
2418
2411
2419
2412
let True16Predicate = UseFakeTrue16Insts in {
@@ -2451,7 +2444,6 @@ def : GCNPat<(fshr i32:$src0, i32:$src1, i32:$src2),
2451
2444
>;
2452
2445
} // end True16Predicate = UseFakeTrue16Insts
2453
2446
2454
-
2455
2447
/********** ====================== **********/
2456
2448
/********** Indirect addressing **********/
2457
2449
/********** ====================== **********/
0 commit comments