@@ -167,25 +167,25 @@ define void @generic_4xi8(ptr %a) {
167
167
; CHECK-NEXT: // %bb.0:
168
168
; CHECK-NEXT: ld.param.u64 %rd1, [generic_4xi8_param_0];
169
169
; CHECK-NEXT: ld.u32 %r1, [%rd1];
170
- ; CHECK-NEXT: bfe.u32 %r2, %r1, 0 , 8;
170
+ ; CHECK-NEXT: bfe.u32 %r2, %r1, 24 , 8;
171
171
; CHECK-NEXT: cvt.u16.u32 %rs1, %r2;
172
172
; CHECK-NEXT: add.s16 %rs2, %rs1, 1;
173
173
; CHECK-NEXT: cvt.u32.u16 %r3, %rs2;
174
- ; CHECK-NEXT: bfe.u32 %r4, %r1, 8 , 8;
174
+ ; CHECK-NEXT: bfe.u32 %r4, %r1, 16 , 8;
175
175
; CHECK-NEXT: cvt.u16.u32 %rs3, %r4;
176
176
; CHECK-NEXT: add.s16 %rs4, %rs3, 1;
177
177
; CHECK-NEXT: cvt.u32.u16 %r5, %rs4;
178
- ; CHECK-NEXT: bfi .b32 %r6, %r5, %r3, 8, 8 ;
179
- ; CHECK-NEXT: bfe.u32 %r7, %r1, 16 , 8;
178
+ ; CHECK-NEXT: prmt .b32 %r6, %r5, %r3, 13120 ;
179
+ ; CHECK-NEXT: bfe.u32 %r7, %r1, 8 , 8;
180
180
; CHECK-NEXT: cvt.u16.u32 %rs5, %r7;
181
181
; CHECK-NEXT: add.s16 %rs6, %rs5, 1;
182
182
; CHECK-NEXT: cvt.u32.u16 %r8, %rs6;
183
- ; CHECK-NEXT: bfi.b32 %r9, %r8, %r6, 16, 8;
184
- ; CHECK-NEXT: bfe.u32 %r10, %r1, 24, 8;
185
- ; CHECK-NEXT: cvt.u16.u32 %rs7, %r10;
183
+ ; CHECK-NEXT: bfe.u32 %r9, %r1, 0, 8;
184
+ ; CHECK-NEXT: cvt.u16.u32 %rs7, %r9;
186
185
; CHECK-NEXT: add.s16 %rs8, %rs7, 1;
187
- ; CHECK-NEXT: cvt.u32.u16 %r11, %rs8;
188
- ; CHECK-NEXT: bfi.b32 %r12, %r11, %r9, 24, 8;
186
+ ; CHECK-NEXT: cvt.u32.u16 %r10, %rs8;
187
+ ; CHECK-NEXT: prmt.b32 %r11, %r10, %r8, 13120;
188
+ ; CHECK-NEXT: prmt.b32 %r12, %r11, %r6, 21520;
189
189
; CHECK-NEXT: st.u32 [%rd1], %r12;
190
190
; CHECK-NEXT: ret;
191
191
%a.load = load <4 x i8 >, ptr %a
@@ -511,25 +511,25 @@ define void @generic_volatile_4xi8(ptr %a) {
511
511
; CHECK-NEXT: // %bb.0:
512
512
; CHECK-NEXT: ld.param.u64 %rd1, [generic_volatile_4xi8_param_0];
513
513
; CHECK-NEXT: ld.volatile.u32 %r1, [%rd1];
514
- ; CHECK-NEXT: bfe.u32 %r2, %r1, 0 , 8;
514
+ ; CHECK-NEXT: bfe.u32 %r2, %r1, 24 , 8;
515
515
; CHECK-NEXT: cvt.u16.u32 %rs1, %r2;
516
516
; CHECK-NEXT: add.s16 %rs2, %rs1, 1;
517
517
; CHECK-NEXT: cvt.u32.u16 %r3, %rs2;
518
- ; CHECK-NEXT: bfe.u32 %r4, %r1, 8 , 8;
518
+ ; CHECK-NEXT: bfe.u32 %r4, %r1, 16 , 8;
519
519
; CHECK-NEXT: cvt.u16.u32 %rs3, %r4;
520
520
; CHECK-NEXT: add.s16 %rs4, %rs3, 1;
521
521
; CHECK-NEXT: cvt.u32.u16 %r5, %rs4;
522
- ; CHECK-NEXT: bfi .b32 %r6, %r5, %r3, 8, 8 ;
523
- ; CHECK-NEXT: bfe.u32 %r7, %r1, 16 , 8;
522
+ ; CHECK-NEXT: prmt .b32 %r6, %r5, %r3, 13120 ;
523
+ ; CHECK-NEXT: bfe.u32 %r7, %r1, 8 , 8;
524
524
; CHECK-NEXT: cvt.u16.u32 %rs5, %r7;
525
525
; CHECK-NEXT: add.s16 %rs6, %rs5, 1;
526
526
; CHECK-NEXT: cvt.u32.u16 %r8, %rs6;
527
- ; CHECK-NEXT: bfi.b32 %r9, %r8, %r6, 16, 8;
528
- ; CHECK-NEXT: bfe.u32 %r10, %r1, 24, 8;
529
- ; CHECK-NEXT: cvt.u16.u32 %rs7, %r10;
527
+ ; CHECK-NEXT: bfe.u32 %r9, %r1, 0, 8;
528
+ ; CHECK-NEXT: cvt.u16.u32 %rs7, %r9;
530
529
; CHECK-NEXT: add.s16 %rs8, %rs7, 1;
531
- ; CHECK-NEXT: cvt.u32.u16 %r11, %rs8;
532
- ; CHECK-NEXT: bfi.b32 %r12, %r11, %r9, 24, 8;
530
+ ; CHECK-NEXT: cvt.u32.u16 %r10, %rs8;
531
+ ; CHECK-NEXT: prmt.b32 %r11, %r10, %r8, 13120;
532
+ ; CHECK-NEXT: prmt.b32 %r12, %r11, %r6, 21520;
533
533
; CHECK-NEXT: st.volatile.u32 [%rd1], %r12;
534
534
; CHECK-NEXT: ret;
535
535
%a.load = load volatile <4 x i8 >, ptr %a
@@ -1416,25 +1416,25 @@ define void @global_4xi8(ptr addrspace(1) %a) {
1416
1416
; CHECK-NEXT: // %bb.0:
1417
1417
; CHECK-NEXT: ld.param.u64 %rd1, [global_4xi8_param_0];
1418
1418
; CHECK-NEXT: ld.global.u32 %r1, [%rd1];
1419
- ; CHECK-NEXT: bfe.u32 %r2, %r1, 0 , 8;
1419
+ ; CHECK-NEXT: bfe.u32 %r2, %r1, 24 , 8;
1420
1420
; CHECK-NEXT: cvt.u16.u32 %rs1, %r2;
1421
1421
; CHECK-NEXT: add.s16 %rs2, %rs1, 1;
1422
1422
; CHECK-NEXT: cvt.u32.u16 %r3, %rs2;
1423
- ; CHECK-NEXT: bfe.u32 %r4, %r1, 8 , 8;
1423
+ ; CHECK-NEXT: bfe.u32 %r4, %r1, 16 , 8;
1424
1424
; CHECK-NEXT: cvt.u16.u32 %rs3, %r4;
1425
1425
; CHECK-NEXT: add.s16 %rs4, %rs3, 1;
1426
1426
; CHECK-NEXT: cvt.u32.u16 %r5, %rs4;
1427
- ; CHECK-NEXT: bfi .b32 %r6, %r5, %r3, 8, 8 ;
1428
- ; CHECK-NEXT: bfe.u32 %r7, %r1, 16 , 8;
1427
+ ; CHECK-NEXT: prmt .b32 %r6, %r5, %r3, 13120 ;
1428
+ ; CHECK-NEXT: bfe.u32 %r7, %r1, 8 , 8;
1429
1429
; CHECK-NEXT: cvt.u16.u32 %rs5, %r7;
1430
1430
; CHECK-NEXT: add.s16 %rs6, %rs5, 1;
1431
1431
; CHECK-NEXT: cvt.u32.u16 %r8, %rs6;
1432
- ; CHECK-NEXT: bfi.b32 %r9, %r8, %r6, 16, 8;
1433
- ; CHECK-NEXT: bfe.u32 %r10, %r1, 24, 8;
1434
- ; CHECK-NEXT: cvt.u16.u32 %rs7, %r10;
1432
+ ; CHECK-NEXT: bfe.u32 %r9, %r1, 0, 8;
1433
+ ; CHECK-NEXT: cvt.u16.u32 %rs7, %r9;
1435
1434
; CHECK-NEXT: add.s16 %rs8, %rs7, 1;
1436
- ; CHECK-NEXT: cvt.u32.u16 %r11, %rs8;
1437
- ; CHECK-NEXT: bfi.b32 %r12, %r11, %r9, 24, 8;
1435
+ ; CHECK-NEXT: cvt.u32.u16 %r10, %rs8;
1436
+ ; CHECK-NEXT: prmt.b32 %r11, %r10, %r8, 13120;
1437
+ ; CHECK-NEXT: prmt.b32 %r12, %r11, %r6, 21520;
1438
1438
; CHECK-NEXT: st.global.u32 [%rd1], %r12;
1439
1439
; CHECK-NEXT: ret;
1440
1440
%a.load = load <4 x i8 >, ptr addrspace (1 ) %a
@@ -1741,25 +1741,25 @@ define void @global_volatile_4xi8(ptr addrspace(1) %a) {
1741
1741
; CHECK-NEXT: // %bb.0:
1742
1742
; CHECK-NEXT: ld.param.u64 %rd1, [global_volatile_4xi8_param_0];
1743
1743
; CHECK-NEXT: ld.volatile.global.u32 %r1, [%rd1];
1744
- ; CHECK-NEXT: bfe.u32 %r2, %r1, 0 , 8;
1744
+ ; CHECK-NEXT: bfe.u32 %r2, %r1, 24 , 8;
1745
1745
; CHECK-NEXT: cvt.u16.u32 %rs1, %r2;
1746
1746
; CHECK-NEXT: add.s16 %rs2, %rs1, 1;
1747
1747
; CHECK-NEXT: cvt.u32.u16 %r3, %rs2;
1748
- ; CHECK-NEXT: bfe.u32 %r4, %r1, 8 , 8;
1748
+ ; CHECK-NEXT: bfe.u32 %r4, %r1, 16 , 8;
1749
1749
; CHECK-NEXT: cvt.u16.u32 %rs3, %r4;
1750
1750
; CHECK-NEXT: add.s16 %rs4, %rs3, 1;
1751
1751
; CHECK-NEXT: cvt.u32.u16 %r5, %rs4;
1752
- ; CHECK-NEXT: bfi .b32 %r6, %r5, %r3, 8, 8 ;
1753
- ; CHECK-NEXT: bfe.u32 %r7, %r1, 16 , 8;
1752
+ ; CHECK-NEXT: prmt .b32 %r6, %r5, %r3, 13120 ;
1753
+ ; CHECK-NEXT: bfe.u32 %r7, %r1, 8 , 8;
1754
1754
; CHECK-NEXT: cvt.u16.u32 %rs5, %r7;
1755
1755
; CHECK-NEXT: add.s16 %rs6, %rs5, 1;
1756
1756
; CHECK-NEXT: cvt.u32.u16 %r8, %rs6;
1757
- ; CHECK-NEXT: bfi.b32 %r9, %r8, %r6, 16, 8;
1758
- ; CHECK-NEXT: bfe.u32 %r10, %r1, 24, 8;
1759
- ; CHECK-NEXT: cvt.u16.u32 %rs7, %r10;
1757
+ ; CHECK-NEXT: bfe.u32 %r9, %r1, 0, 8;
1758
+ ; CHECK-NEXT: cvt.u16.u32 %rs7, %r9;
1760
1759
; CHECK-NEXT: add.s16 %rs8, %rs7, 1;
1761
- ; CHECK-NEXT: cvt.u32.u16 %r11, %rs8;
1762
- ; CHECK-NEXT: bfi.b32 %r12, %r11, %r9, 24, 8;
1760
+ ; CHECK-NEXT: cvt.u32.u16 %r10, %rs8;
1761
+ ; CHECK-NEXT: prmt.b32 %r11, %r10, %r8, 13120;
1762
+ ; CHECK-NEXT: prmt.b32 %r12, %r11, %r6, 21520;
1763
1763
; CHECK-NEXT: st.volatile.global.u32 [%rd1], %r12;
1764
1764
; CHECK-NEXT: ret;
1765
1765
%a.load = load volatile <4 x i8 >, ptr addrspace (1 ) %a
@@ -2788,25 +2788,25 @@ define void @shared_4xi8(ptr addrspace(3) %a) {
2788
2788
; CHECK-NEXT: // %bb.0:
2789
2789
; CHECK-NEXT: ld.param.u64 %rd1, [shared_4xi8_param_0];
2790
2790
; CHECK-NEXT: ld.shared.u32 %r1, [%rd1];
2791
- ; CHECK-NEXT: bfe.u32 %r2, %r1, 0 , 8;
2791
+ ; CHECK-NEXT: bfe.u32 %r2, %r1, 24 , 8;
2792
2792
; CHECK-NEXT: cvt.u16.u32 %rs1, %r2;
2793
2793
; CHECK-NEXT: add.s16 %rs2, %rs1, 1;
2794
2794
; CHECK-NEXT: cvt.u32.u16 %r3, %rs2;
2795
- ; CHECK-NEXT: bfe.u32 %r4, %r1, 8 , 8;
2795
+ ; CHECK-NEXT: bfe.u32 %r4, %r1, 16 , 8;
2796
2796
; CHECK-NEXT: cvt.u16.u32 %rs3, %r4;
2797
2797
; CHECK-NEXT: add.s16 %rs4, %rs3, 1;
2798
2798
; CHECK-NEXT: cvt.u32.u16 %r5, %rs4;
2799
- ; CHECK-NEXT: bfi .b32 %r6, %r5, %r3, 8, 8 ;
2800
- ; CHECK-NEXT: bfe.u32 %r7, %r1, 16 , 8;
2799
+ ; CHECK-NEXT: prmt .b32 %r6, %r5, %r3, 13120 ;
2800
+ ; CHECK-NEXT: bfe.u32 %r7, %r1, 8 , 8;
2801
2801
; CHECK-NEXT: cvt.u16.u32 %rs5, %r7;
2802
2802
; CHECK-NEXT: add.s16 %rs6, %rs5, 1;
2803
2803
; CHECK-NEXT: cvt.u32.u16 %r8, %rs6;
2804
- ; CHECK-NEXT: bfi.b32 %r9, %r8, %r6, 16, 8;
2805
- ; CHECK-NEXT: bfe.u32 %r10, %r1, 24, 8;
2806
- ; CHECK-NEXT: cvt.u16.u32 %rs7, %r10;
2804
+ ; CHECK-NEXT: bfe.u32 %r9, %r1, 0, 8;
2805
+ ; CHECK-NEXT: cvt.u16.u32 %rs7, %r9;
2807
2806
; CHECK-NEXT: add.s16 %rs8, %rs7, 1;
2808
- ; CHECK-NEXT: cvt.u32.u16 %r11, %rs8;
2809
- ; CHECK-NEXT: bfi.b32 %r12, %r11, %r9, 24, 8;
2807
+ ; CHECK-NEXT: cvt.u32.u16 %r10, %rs8;
2808
+ ; CHECK-NEXT: prmt.b32 %r11, %r10, %r8, 13120;
2809
+ ; CHECK-NEXT: prmt.b32 %r12, %r11, %r6, 21520;
2810
2810
; CHECK-NEXT: st.shared.u32 [%rd1], %r12;
2811
2811
; CHECK-NEXT: ret;
2812
2812
%a.load = load <4 x i8 >, ptr addrspace (3 ) %a
@@ -3113,25 +3113,25 @@ define void @shared_volatile_4xi8(ptr addrspace(3) %a) {
3113
3113
; CHECK-NEXT: // %bb.0:
3114
3114
; CHECK-NEXT: ld.param.u64 %rd1, [shared_volatile_4xi8_param_0];
3115
3115
; CHECK-NEXT: ld.volatile.shared.u32 %r1, [%rd1];
3116
- ; CHECK-NEXT: bfe.u32 %r2, %r1, 0 , 8;
3116
+ ; CHECK-NEXT: bfe.u32 %r2, %r1, 24 , 8;
3117
3117
; CHECK-NEXT: cvt.u16.u32 %rs1, %r2;
3118
3118
; CHECK-NEXT: add.s16 %rs2, %rs1, 1;
3119
3119
; CHECK-NEXT: cvt.u32.u16 %r3, %rs2;
3120
- ; CHECK-NEXT: bfe.u32 %r4, %r1, 8 , 8;
3120
+ ; CHECK-NEXT: bfe.u32 %r4, %r1, 16 , 8;
3121
3121
; CHECK-NEXT: cvt.u16.u32 %rs3, %r4;
3122
3122
; CHECK-NEXT: add.s16 %rs4, %rs3, 1;
3123
3123
; CHECK-NEXT: cvt.u32.u16 %r5, %rs4;
3124
- ; CHECK-NEXT: bfi .b32 %r6, %r5, %r3, 8, 8 ;
3125
- ; CHECK-NEXT: bfe.u32 %r7, %r1, 16 , 8;
3124
+ ; CHECK-NEXT: prmt .b32 %r6, %r5, %r3, 13120 ;
3125
+ ; CHECK-NEXT: bfe.u32 %r7, %r1, 8 , 8;
3126
3126
; CHECK-NEXT: cvt.u16.u32 %rs5, %r7;
3127
3127
; CHECK-NEXT: add.s16 %rs6, %rs5, 1;
3128
3128
; CHECK-NEXT: cvt.u32.u16 %r8, %rs6;
3129
- ; CHECK-NEXT: bfi.b32 %r9, %r8, %r6, 16, 8;
3130
- ; CHECK-NEXT: bfe.u32 %r10, %r1, 24, 8;
3131
- ; CHECK-NEXT: cvt.u16.u32 %rs7, %r10;
3129
+ ; CHECK-NEXT: bfe.u32 %r9, %r1, 0, 8;
3130
+ ; CHECK-NEXT: cvt.u16.u32 %rs7, %r9;
3132
3131
; CHECK-NEXT: add.s16 %rs8, %rs7, 1;
3133
- ; CHECK-NEXT: cvt.u32.u16 %r11, %rs8;
3134
- ; CHECK-NEXT: bfi.b32 %r12, %r11, %r9, 24, 8;
3132
+ ; CHECK-NEXT: cvt.u32.u16 %r10, %rs8;
3133
+ ; CHECK-NEXT: prmt.b32 %r11, %r10, %r8, 13120;
3134
+ ; CHECK-NEXT: prmt.b32 %r12, %r11, %r6, 21520;
3135
3135
; CHECK-NEXT: st.volatile.shared.u32 [%rd1], %r12;
3136
3136
; CHECK-NEXT: ret;
3137
3137
%a.load = load volatile <4 x i8 >, ptr addrspace (3 ) %a
@@ -4018,25 +4018,25 @@ define void @local_4xi8(ptr addrspace(5) %a) {
4018
4018
; CHECK-NEXT: // %bb.0:
4019
4019
; CHECK-NEXT: ld.param.u64 %rd1, [local_4xi8_param_0];
4020
4020
; CHECK-NEXT: ld.local.u32 %r1, [%rd1];
4021
- ; CHECK-NEXT: bfe.u32 %r2, %r1, 0 , 8;
4021
+ ; CHECK-NEXT: bfe.u32 %r2, %r1, 24 , 8;
4022
4022
; CHECK-NEXT: cvt.u16.u32 %rs1, %r2;
4023
4023
; CHECK-NEXT: add.s16 %rs2, %rs1, 1;
4024
4024
; CHECK-NEXT: cvt.u32.u16 %r3, %rs2;
4025
- ; CHECK-NEXT: bfe.u32 %r4, %r1, 8 , 8;
4025
+ ; CHECK-NEXT: bfe.u32 %r4, %r1, 16 , 8;
4026
4026
; CHECK-NEXT: cvt.u16.u32 %rs3, %r4;
4027
4027
; CHECK-NEXT: add.s16 %rs4, %rs3, 1;
4028
4028
; CHECK-NEXT: cvt.u32.u16 %r5, %rs4;
4029
- ; CHECK-NEXT: bfi .b32 %r6, %r5, %r3, 8, 8 ;
4030
- ; CHECK-NEXT: bfe.u32 %r7, %r1, 16 , 8;
4029
+ ; CHECK-NEXT: prmt .b32 %r6, %r5, %r3, 13120 ;
4030
+ ; CHECK-NEXT: bfe.u32 %r7, %r1, 8 , 8;
4031
4031
; CHECK-NEXT: cvt.u16.u32 %rs5, %r7;
4032
4032
; CHECK-NEXT: add.s16 %rs6, %rs5, 1;
4033
4033
; CHECK-NEXT: cvt.u32.u16 %r8, %rs6;
4034
- ; CHECK-NEXT: bfi.b32 %r9, %r8, %r6, 16, 8;
4035
- ; CHECK-NEXT: bfe.u32 %r10, %r1, 24, 8;
4036
- ; CHECK-NEXT: cvt.u16.u32 %rs7, %r10;
4034
+ ; CHECK-NEXT: bfe.u32 %r9, %r1, 0, 8;
4035
+ ; CHECK-NEXT: cvt.u16.u32 %rs7, %r9;
4037
4036
; CHECK-NEXT: add.s16 %rs8, %rs7, 1;
4038
- ; CHECK-NEXT: cvt.u32.u16 %r11, %rs8;
4039
- ; CHECK-NEXT: bfi.b32 %r12, %r11, %r9, 24, 8;
4037
+ ; CHECK-NEXT: cvt.u32.u16 %r10, %rs8;
4038
+ ; CHECK-NEXT: prmt.b32 %r11, %r10, %r8, 13120;
4039
+ ; CHECK-NEXT: prmt.b32 %r12, %r11, %r6, 21520;
4040
4040
; CHECK-NEXT: st.local.u32 [%rd1], %r12;
4041
4041
; CHECK-NEXT: ret;
4042
4042
%a.load = load <4 x i8 >, ptr addrspace (5 ) %a
@@ -4343,25 +4343,25 @@ define void @local_volatile_4xi8(ptr addrspace(5) %a) {
4343
4343
; CHECK-NEXT: // %bb.0:
4344
4344
; CHECK-NEXT: ld.param.u64 %rd1, [local_volatile_4xi8_param_0];
4345
4345
; CHECK-NEXT: ld.local.u32 %r1, [%rd1];
4346
- ; CHECK-NEXT: bfe.u32 %r2, %r1, 0 , 8;
4346
+ ; CHECK-NEXT: bfe.u32 %r2, %r1, 24 , 8;
4347
4347
; CHECK-NEXT: cvt.u16.u32 %rs1, %r2;
4348
4348
; CHECK-NEXT: add.s16 %rs2, %rs1, 1;
4349
4349
; CHECK-NEXT: cvt.u32.u16 %r3, %rs2;
4350
- ; CHECK-NEXT: bfe.u32 %r4, %r1, 8 , 8;
4350
+ ; CHECK-NEXT: bfe.u32 %r4, %r1, 16 , 8;
4351
4351
; CHECK-NEXT: cvt.u16.u32 %rs3, %r4;
4352
4352
; CHECK-NEXT: add.s16 %rs4, %rs3, 1;
4353
4353
; CHECK-NEXT: cvt.u32.u16 %r5, %rs4;
4354
- ; CHECK-NEXT: bfi .b32 %r6, %r5, %r3, 8, 8 ;
4355
- ; CHECK-NEXT: bfe.u32 %r7, %r1, 16 , 8;
4354
+ ; CHECK-NEXT: prmt .b32 %r6, %r5, %r3, 13120 ;
4355
+ ; CHECK-NEXT: bfe.u32 %r7, %r1, 8 , 8;
4356
4356
; CHECK-NEXT: cvt.u16.u32 %rs5, %r7;
4357
4357
; CHECK-NEXT: add.s16 %rs6, %rs5, 1;
4358
4358
; CHECK-NEXT: cvt.u32.u16 %r8, %rs6;
4359
- ; CHECK-NEXT: bfi.b32 %r9, %r8, %r6, 16, 8;
4360
- ; CHECK-NEXT: bfe.u32 %r10, %r1, 24, 8;
4361
- ; CHECK-NEXT: cvt.u16.u32 %rs7, %r10;
4359
+ ; CHECK-NEXT: bfe.u32 %r9, %r1, 0, 8;
4360
+ ; CHECK-NEXT: cvt.u16.u32 %rs7, %r9;
4362
4361
; CHECK-NEXT: add.s16 %rs8, %rs7, 1;
4363
- ; CHECK-NEXT: cvt.u32.u16 %r11, %rs8;
4364
- ; CHECK-NEXT: bfi.b32 %r12, %r11, %r9, 24, 8;
4362
+ ; CHECK-NEXT: cvt.u32.u16 %r10, %rs8;
4363
+ ; CHECK-NEXT: prmt.b32 %r11, %r10, %r8, 13120;
4364
+ ; CHECK-NEXT: prmt.b32 %r12, %r11, %r6, 21520;
4365
4365
; CHECK-NEXT: st.local.u32 [%rd1], %r12;
4366
4366
; CHECK-NEXT: ret;
4367
4367
%a.load = load volatile <4 x i8 >, ptr addrspace (5 ) %a
0 commit comments