@@ -12,22 +12,22 @@ target triple = "hexagon"
12
12
define <64 x i16 > @f0 (ptr %a0 , i32 %a1 ) #0 {
13
13
; CHECK-LABEL: @f0(
14
14
; CHECK-NEXT: b0:
15
- ; CHECK-NEXT: [[TMP0 :%.*]] = getelementptr i16, ptr [[A0:%.*]], i32 [[A1:%.*]]
16
- ; CHECK-NEXT: [[V1:%.*]] = getelementptr i8 , ptr [[TMP0 ]], i32 128
15
+ ; CHECK-NEXT: [[V0 :%.*]] = add i32 [[A1:%.*]], 64
16
+ ; CHECK-NEXT: [[V1:%.*]] = getelementptr i16 , ptr [[A0:%.* ]], i32 [[V0]]
17
17
; CHECK-NEXT: [[PTI:%.*]] = ptrtoint ptr [[V1]] to i32
18
- ; CHECK-NEXT: [[AND :%.*]] = and i32 [[PTI]], -128
19
- ; CHECK-NEXT: [[ITP:%.*]] = inttoptr i32 [[AND ]] to ptr
18
+ ; CHECK-NEXT: [[ADD :%.*]] = and i32 [[PTI]], -128
19
+ ; CHECK-NEXT: [[ITP:%.*]] = inttoptr i32 [[ADD ]] to ptr
20
20
; CHECK-NEXT: [[PTI1:%.*]] = ptrtoint ptr [[V1]] to i32
21
21
; CHECK-NEXT: [[ALD14:%.*]] = load <32 x i32>, ptr [[ITP]], align 128, !tbaa [[TBAA0:![0-9]+]]
22
22
; CHECK-NEXT: [[GEP:%.*]] = getelementptr i8, ptr [[ITP]], i32 128
23
23
; CHECK-NEXT: [[ALD2:%.*]] = load <128 x i8>, ptr [[GEP]], align 128, !tbaa [[TBAA0]]
24
24
; CHECK-NEXT: [[GEP3:%.*]] = getelementptr i8, ptr [[ITP]], i32 256
25
- ; CHECK-NEXT: [[AND4 :%.*]] = and i32 [[PTI1]], 127
26
- ; CHECK-NEXT: [[ISZ:%.*]] = icmp ne i32 [[AND4 ]], 0
25
+ ; CHECK-NEXT: [[TMP0 :%.*]] = and i32 [[PTI1]], 127
26
+ ; CHECK-NEXT: [[ISZ:%.*]] = icmp ne i32 [[TMP0 ]], 0
27
27
; CHECK-NEXT: [[CUP:%.*]] = call <32 x i32> @llvm.hexagon.V6.vL32b.pred.ai.128B(i1 [[ISZ]], ptr [[GEP3]], i32 0), !tbaa [[TBAA0]]
28
- ; CHECK-NEXT: [[CST5 :%.*]] = bitcast <128 x i8> [[ALD2]] to <32 x i32>
29
- ; CHECK-NEXT: [[CUP7 :%.*]] = call <32 x i32> @llvm.hexagon.V6.valignb.128B(<32 x i32> [[CST5 ]], <32 x i32> [[ALD14]], i32 [[PTI1]])
30
- ; CHECK-NEXT: [[CST12:%.*]] = bitcast <32 x i32> [[CUP7 ]] to <64 x i16>
28
+ ; CHECK-NEXT: [[CST4 :%.*]] = bitcast <128 x i8> [[ALD2]] to <32 x i32>
29
+ ; CHECK-NEXT: [[CUP6 :%.*]] = call <32 x i32> @llvm.hexagon.V6.valignb.128B(<32 x i32> [[CST4 ]], <32 x i32> [[ALD14]], i32 [[PTI1]])
30
+ ; CHECK-NEXT: [[CST12:%.*]] = bitcast <32 x i32> [[CUP6 ]] to <64 x i16>
31
31
; CHECK-NEXT: [[CST9:%.*]] = bitcast <128 x i8> [[ALD2]] to <32 x i32>
32
32
; CHECK-NEXT: [[CUP10:%.*]] = call <32 x i32> @llvm.hexagon.V6.valignb.128B(<32 x i32> [[CUP]], <32 x i32> [[CST9]], i32 [[PTI1]])
33
33
; CHECK-NEXT: [[CST13:%.*]] = bitcast <32 x i32> [[CUP10]] to <64 x i16>
50
50
define <64 x i16 > @f1 (ptr %a0 , i32 %a1 ) #0 {
51
51
; CHECK-LABEL: @f1(
52
52
; CHECK-NEXT: b0:
53
- ; CHECK-NEXT: [[TMP0 :%.*]] = getelementptr i16, ptr [[A0:%.*]], i32 [[A1:%.*]]
54
- ; CHECK-NEXT: [[V1:%.*]] = getelementptr i8 , ptr [[TMP0 ]], i32 128
53
+ ; CHECK-NEXT: [[V0 :%.*]] = add i32 [[A1:%.*]], 64
54
+ ; CHECK-NEXT: [[V1:%.*]] = getelementptr i16 , ptr [[A0:%.* ]], i32 [[V0]]
55
55
; CHECK-NEXT: [[PTI:%.*]] = ptrtoint ptr [[V1]] to i32
56
- ; CHECK-NEXT: [[AND :%.*]] = and i32 [[PTI]], -128
57
- ; CHECK-NEXT: [[ITP:%.*]] = inttoptr i32 [[AND ]] to ptr
56
+ ; CHECK-NEXT: [[ADD :%.*]] = and i32 [[PTI]], -128
57
+ ; CHECK-NEXT: [[ITP:%.*]] = inttoptr i32 [[ADD ]] to ptr
58
58
; CHECK-NEXT: [[PTI1:%.*]] = ptrtoint ptr [[V1]] to i32
59
59
; CHECK-NEXT: [[ALD14:%.*]] = load <32 x i32>, ptr [[ITP]], align 128, !tbaa [[TBAA0]]
60
60
; CHECK-NEXT: [[GEP:%.*]] = getelementptr i8, ptr [[ITP]], i32 128
61
61
; CHECK-NEXT: [[ALD2:%.*]] = load <128 x i8>, ptr [[GEP]], align 128
62
62
; CHECK-NEXT: [[GEP3:%.*]] = getelementptr i8, ptr [[ITP]], i32 256
63
- ; CHECK-NEXT: [[AND4 :%.*]] = and i32 [[PTI1]], 127
64
- ; CHECK-NEXT: [[ISZ:%.*]] = icmp ne i32 [[AND4 ]], 0
63
+ ; CHECK-NEXT: [[TMP0 :%.*]] = and i32 [[PTI1]], 127
64
+ ; CHECK-NEXT: [[ISZ:%.*]] = icmp ne i32 [[TMP0 ]], 0
65
65
; CHECK-NEXT: [[CUP:%.*]] = call <32 x i32> @llvm.hexagon.V6.vL32b.pred.ai.128B(i1 [[ISZ]], ptr [[GEP3]], i32 0)
66
- ; CHECK-NEXT: [[CST5 :%.*]] = bitcast <128 x i8> [[ALD2]] to <32 x i32>
67
- ; CHECK-NEXT: [[CUP7 :%.*]] = call <32 x i32> @llvm.hexagon.V6.valignb.128B(<32 x i32> [[CST5 ]], <32 x i32> [[ALD14]], i32 [[PTI1]])
68
- ; CHECK-NEXT: [[CST12:%.*]] = bitcast <32 x i32> [[CUP7 ]] to <64 x i16>
66
+ ; CHECK-NEXT: [[CST4 :%.*]] = bitcast <128 x i8> [[ALD2]] to <32 x i32>
67
+ ; CHECK-NEXT: [[CUP6 :%.*]] = call <32 x i32> @llvm.hexagon.V6.valignb.128B(<32 x i32> [[CST4 ]], <32 x i32> [[ALD14]], i32 [[PTI1]])
68
+ ; CHECK-NEXT: [[CST12:%.*]] = bitcast <32 x i32> [[CUP6 ]] to <64 x i16>
69
69
; CHECK-NEXT: [[CST9:%.*]] = bitcast <128 x i8> [[ALD2]] to <32 x i32>
70
70
; CHECK-NEXT: [[CUP10:%.*]] = call <32 x i32> @llvm.hexagon.V6.valignb.128B(<32 x i32> [[CUP]], <32 x i32> [[CST9]], i32 [[PTI1]])
71
71
; CHECK-NEXT: [[CST13:%.*]] = bitcast <32 x i32> [[CUP10]] to <64 x i16>
88
88
define <64 x i16 > @f2 (ptr %a0 , i32 %a1 ) #0 {
89
89
; CHECK-LABEL: @f2(
90
90
; CHECK-NEXT: b0:
91
- ; CHECK-NEXT: [[TMP0 :%.*]] = getelementptr i16, ptr [[A0:%.*]], i32 [[A1:%.*]]
92
- ; CHECK-NEXT: [[V1:%.*]] = getelementptr i8 , ptr [[TMP0 ]], i32 128
91
+ ; CHECK-NEXT: [[V0 :%.*]] = add i32 [[A1:%.*]], 64
92
+ ; CHECK-NEXT: [[V1:%.*]] = getelementptr i16 , ptr [[A0:%.* ]], i32 [[V0]]
93
93
; CHECK-NEXT: [[PTI:%.*]] = ptrtoint ptr [[V1]] to i32
94
- ; CHECK-NEXT: [[AND :%.*]] = and i32 [[PTI]], -128
95
- ; CHECK-NEXT: [[ITP:%.*]] = inttoptr i32 [[AND ]] to ptr
94
+ ; CHECK-NEXT: [[ADD :%.*]] = and i32 [[PTI]], -128
95
+ ; CHECK-NEXT: [[ITP:%.*]] = inttoptr i32 [[ADD ]] to ptr
96
96
; CHECK-NEXT: [[PTI1:%.*]] = ptrtoint ptr [[V1]] to i32
97
97
; CHECK-NEXT: [[ALD14:%.*]] = load <32 x i32>, ptr [[ITP]], align 128, !tbaa [[TBAA0]]
98
98
; CHECK-NEXT: [[GEP:%.*]] = getelementptr i8, ptr [[ITP]], i32 128
99
99
; CHECK-NEXT: [[ALD2:%.*]] = load <128 x i8>, ptr [[GEP]], align 128
100
100
; CHECK-NEXT: [[GEP3:%.*]] = getelementptr i8, ptr [[ITP]], i32 256
101
- ; CHECK-NEXT: [[AND4 :%.*]] = and i32 [[PTI1]], 127
102
- ; CHECK-NEXT: [[ISZ:%.*]] = icmp ne i32 [[AND4 ]], 0
101
+ ; CHECK-NEXT: [[TMP0 :%.*]] = and i32 [[PTI1]], 127
102
+ ; CHECK-NEXT: [[ISZ:%.*]] = icmp ne i32 [[TMP0 ]], 0
103
103
; CHECK-NEXT: [[CUP:%.*]] = call <32 x i32> @llvm.hexagon.V6.vL32b.pred.ai.128B(i1 [[ISZ]], ptr [[GEP3]], i32 0), !tbaa [[TBAA3:![0-9]+]]
104
- ; CHECK-NEXT: [[CST5 :%.*]] = bitcast <128 x i8> [[ALD2]] to <32 x i32>
105
- ; CHECK-NEXT: [[CUP7 :%.*]] = call <32 x i32> @llvm.hexagon.V6.valignb.128B(<32 x i32> [[CST5 ]], <32 x i32> [[ALD14]], i32 [[PTI1]])
106
- ; CHECK-NEXT: [[CST12:%.*]] = bitcast <32 x i32> [[CUP7 ]] to <64 x i16>
104
+ ; CHECK-NEXT: [[CST4 :%.*]] = bitcast <128 x i8> [[ALD2]] to <32 x i32>
105
+ ; CHECK-NEXT: [[CUP6 :%.*]] = call <32 x i32> @llvm.hexagon.V6.valignb.128B(<32 x i32> [[CST4 ]], <32 x i32> [[ALD14]], i32 [[PTI1]])
106
+ ; CHECK-NEXT: [[CST12:%.*]] = bitcast <32 x i32> [[CUP6 ]] to <64 x i16>
107
107
; CHECK-NEXT: [[CST9:%.*]] = bitcast <128 x i8> [[ALD2]] to <32 x i32>
108
108
; CHECK-NEXT: [[CUP10:%.*]] = call <32 x i32> @llvm.hexagon.V6.valignb.128B(<32 x i32> [[CUP]], <32 x i32> [[CST9]], i32 [[PTI1]])
109
109
; CHECK-NEXT: [[CST13:%.*]] = bitcast <32 x i32> [[CUP10]] to <64 x i16>
@@ -126,11 +126,11 @@ b0:
126
126
define void @f3 (ptr %a0 , i32 %a1 , <64 x i16 > %a2 , <64 x i16 > %a3 ) #0 {
127
127
; CHECK-LABEL: @f3(
128
128
; CHECK-NEXT: b0:
129
- ; CHECK-NEXT: [[TMP0 :%.*]] = getelementptr i16, ptr [[A0:%.*]], i32 [[A1:%.*]]
130
- ; CHECK-NEXT: [[V1:%.*]] = getelementptr i8 , ptr [[TMP0 ]], i32 128
129
+ ; CHECK-NEXT: [[V0 :%.*]] = add i32 [[A1:%.*]], 64
130
+ ; CHECK-NEXT: [[V1:%.*]] = getelementptr i16 , ptr [[A0:%.* ]], i32 [[V0]]
131
131
; CHECK-NEXT: [[PTI:%.*]] = ptrtoint ptr [[V1]] to i32
132
- ; CHECK-NEXT: [[AND :%.*]] = and i32 [[PTI]], -128
133
- ; CHECK-NEXT: [[ITP:%.*]] = inttoptr i32 [[AND ]] to ptr
132
+ ; CHECK-NEXT: [[ADD :%.*]] = and i32 [[PTI]], -128
133
+ ; CHECK-NEXT: [[ITP:%.*]] = inttoptr i32 [[ADD ]] to ptr
134
134
; CHECK-NEXT: [[PTI1:%.*]] = ptrtoint ptr [[V1]] to i32
135
135
; CHECK-NEXT: [[CST3:%.*]] = bitcast <64 x i16> [[A2:%.*]] to <32 x i32>
136
136
; CHECK-NEXT: [[CUP:%.*]] = call <32 x i32> @llvm.hexagon.V6.vlalignb.128B(<32 x i32> [[CST3]], <32 x i32> undef, i32 [[PTI1]])
@@ -154,14 +154,14 @@ define void @f3(ptr %a0, i32 %a1, <64 x i16> %a2, <64 x i16> %a3) #0 {
154
154
; CHECK-NEXT: [[TRN18:%.*]] = trunc <128 x i8> [[CST12]] to <128 x i1>
155
155
; CHECK-NEXT: call void @llvm.masked.store.v128i8.p0(<128 x i8> [[CST10]], ptr [[GEP]], i32 128, <128 x i1> [[TRN18]]), !tbaa [[TBAA5]]
156
156
; CHECK-NEXT: [[GEP19:%.*]] = getelementptr i8, ptr [[ITP]], i32 256
157
- ; CHECK-NEXT: [[AND20 :%.*]] = and i32 [[PTI1]], 127
158
- ; CHECK-NEXT: [[ISZ:%.*]] = icmp ne i32 [[AND20 ]], 0
159
- ; CHECK-NEXT: [[TRN21 :%.*]] = trunc <128 x i8> [[CST17]] to <128 x i1>
160
- ; CHECK-NEXT: [[CUP22 :%.*]] = call <32 x i32> @llvm.hexagon.V6.vL32b.pred.ai.128B(i1 [[ISZ]], ptr [[GEP19]], i32 0), !tbaa [[TBAA5]]
161
- ; CHECK-NEXT: [[CST23 :%.*]] = bitcast <32 x i32> [[CUP22 ]] to <128 x i8>
162
- ; CHECK-NEXT: [[TMP1:%.*]] = select <128 x i1> [[TRN21 ]], <128 x i8> [[CST15]], <128 x i8> [[CST23 ]]
163
- ; CHECK-NEXT: [[CST24 :%.*]] = bitcast <128 x i8> [[TMP1]] to <32 x i32>
164
- ; CHECK-NEXT: call void @llvm.hexagon.V6.vS32b.pred.ai.128B(i1 [[ISZ]], ptr [[GEP19]], i32 0, <32 x i32> [[CST24 ]]), !tbaa [[TBAA5]]
157
+ ; CHECK-NEXT: [[TMP0 :%.*]] = and i32 [[PTI1]], 127
158
+ ; CHECK-NEXT: [[ISZ:%.*]] = icmp ne i32 [[TMP0 ]], 0
159
+ ; CHECK-NEXT: [[TRN20 :%.*]] = trunc <128 x i8> [[CST17]] to <128 x i1>
160
+ ; CHECK-NEXT: [[CUP21 :%.*]] = call <32 x i32> @llvm.hexagon.V6.vL32b.pred.ai.128B(i1 [[ISZ]], ptr [[GEP19]], i32 0), !tbaa [[TBAA5]]
161
+ ; CHECK-NEXT: [[CST22 :%.*]] = bitcast <32 x i32> [[CUP21 ]] to <128 x i8>
162
+ ; CHECK-NEXT: [[TMP1:%.*]] = select <128 x i1> [[TRN20 ]], <128 x i8> [[CST15]], <128 x i8> [[CST22 ]]
163
+ ; CHECK-NEXT: [[CST23 :%.*]] = bitcast <128 x i8> [[TMP1]] to <32 x i32>
164
+ ; CHECK-NEXT: call void @llvm.hexagon.V6.vS32b.pred.ai.128B(i1 [[ISZ]], ptr [[GEP19]], i32 0, <32 x i32> [[CST23 ]]), !tbaa [[TBAA5]]
165
165
; CHECK-NEXT: ret void
166
166
;
167
167
b0:
@@ -179,11 +179,11 @@ b0:
179
179
define void @f4 (ptr %a0 , i32 %a1 , <64 x i16 > %a2 , <64 x i16 > %a3 ) #0 {
180
180
; CHECK-LABEL: @f4(
181
181
; CHECK-NEXT: b0:
182
- ; CHECK-NEXT: [[TMP0 :%.*]] = getelementptr i16, ptr [[A0:%.*]], i32 [[A1:%.*]]
183
- ; CHECK-NEXT: [[V1:%.*]] = getelementptr i8 , ptr [[TMP0 ]], i32 128
182
+ ; CHECK-NEXT: [[V0 :%.*]] = add i32 [[A1:%.*]], 64
183
+ ; CHECK-NEXT: [[V1:%.*]] = getelementptr i16 , ptr [[A0:%.* ]], i32 [[V0]]
184
184
; CHECK-NEXT: [[PTI:%.*]] = ptrtoint ptr [[V1]] to i32
185
- ; CHECK-NEXT: [[AND :%.*]] = and i32 [[PTI]], -128
186
- ; CHECK-NEXT: [[ITP:%.*]] = inttoptr i32 [[AND ]] to ptr
185
+ ; CHECK-NEXT: [[ADD :%.*]] = and i32 [[PTI]], -128
186
+ ; CHECK-NEXT: [[ITP:%.*]] = inttoptr i32 [[ADD ]] to ptr
187
187
; CHECK-NEXT: [[PTI1:%.*]] = ptrtoint ptr [[V1]] to i32
188
188
; CHECK-NEXT: [[CST3:%.*]] = bitcast <64 x i16> [[A2:%.*]] to <32 x i32>
189
189
; CHECK-NEXT: [[CUP:%.*]] = call <32 x i32> @llvm.hexagon.V6.vlalignb.128B(<32 x i32> [[CST3]], <32 x i32> undef, i32 [[PTI1]])
@@ -207,14 +207,14 @@ define void @f4(ptr %a0, i32 %a1, <64 x i16> %a2, <64 x i16> %a3) #0 {
207
207
; CHECK-NEXT: [[TRN18:%.*]] = trunc <128 x i8> [[CST12]] to <128 x i1>
208
208
; CHECK-NEXT: call void @llvm.masked.store.v128i8.p0(<128 x i8> [[CST10]], ptr [[GEP]], i32 128, <128 x i1> [[TRN18]])
209
209
; CHECK-NEXT: [[GEP19:%.*]] = getelementptr i8, ptr [[ITP]], i32 256
210
- ; CHECK-NEXT: [[AND20 :%.*]] = and i32 [[PTI1]], 127
211
- ; CHECK-NEXT: [[ISZ:%.*]] = icmp ne i32 [[AND20 ]], 0
212
- ; CHECK-NEXT: [[TRN21 :%.*]] = trunc <128 x i8> [[CST17]] to <128 x i1>
213
- ; CHECK-NEXT: [[CUP22 :%.*]] = call <32 x i32> @llvm.hexagon.V6.vL32b.pred.ai.128B(i1 [[ISZ]], ptr [[GEP19]], i32 0), !tbaa [[TBAA5]]
214
- ; CHECK-NEXT: [[CST23 :%.*]] = bitcast <32 x i32> [[CUP22 ]] to <128 x i8>
215
- ; CHECK-NEXT: [[TMP1:%.*]] = select <128 x i1> [[TRN21 ]], <128 x i8> [[CST15]], <128 x i8> [[CST23 ]]
216
- ; CHECK-NEXT: [[CST24 :%.*]] = bitcast <128 x i8> [[TMP1]] to <32 x i32>
217
- ; CHECK-NEXT: call void @llvm.hexagon.V6.vS32b.pred.ai.128B(i1 [[ISZ]], ptr [[GEP19]], i32 0, <32 x i32> [[CST24 ]]), !tbaa [[TBAA5]]
210
+ ; CHECK-NEXT: [[TMP0 :%.*]] = and i32 [[PTI1]], 127
211
+ ; CHECK-NEXT: [[ISZ:%.*]] = icmp ne i32 [[TMP0 ]], 0
212
+ ; CHECK-NEXT: [[TRN20 :%.*]] = trunc <128 x i8> [[CST17]] to <128 x i1>
213
+ ; CHECK-NEXT: [[CUP21 :%.*]] = call <32 x i32> @llvm.hexagon.V6.vL32b.pred.ai.128B(i1 [[ISZ]], ptr [[GEP19]], i32 0), !tbaa [[TBAA5]]
214
+ ; CHECK-NEXT: [[CST22 :%.*]] = bitcast <32 x i32> [[CUP21 ]] to <128 x i8>
215
+ ; CHECK-NEXT: [[TMP1:%.*]] = select <128 x i1> [[TRN20 ]], <128 x i8> [[CST15]], <128 x i8> [[CST22 ]]
216
+ ; CHECK-NEXT: [[CST23 :%.*]] = bitcast <128 x i8> [[TMP1]] to <32 x i32>
217
+ ; CHECK-NEXT: call void @llvm.hexagon.V6.vS32b.pred.ai.128B(i1 [[ISZ]], ptr [[GEP19]], i32 0, <32 x i32> [[CST23 ]]), !tbaa [[TBAA5]]
218
218
; CHECK-NEXT: ret void
219
219
;
220
220
b0:
@@ -232,11 +232,11 @@ b0:
232
232
define void @f5 (ptr %a0 , i32 %a1 , <64 x i16 > %a2 , <64 x i16 > %a3 ) #0 {
233
233
; CHECK-LABEL: @f5(
234
234
; CHECK-NEXT: b0:
235
- ; CHECK-NEXT: [[TMP0 :%.*]] = getelementptr i16, ptr [[A0:%.*]], i32 [[A1:%.*]]
236
- ; CHECK-NEXT: [[V1:%.*]] = getelementptr i8 , ptr [[TMP0 ]], i32 128
235
+ ; CHECK-NEXT: [[V0 :%.*]] = add i32 [[A1:%.*]], 64
236
+ ; CHECK-NEXT: [[V1:%.*]] = getelementptr i16 , ptr [[A0:%.* ]], i32 [[V0]]
237
237
; CHECK-NEXT: [[PTI:%.*]] = ptrtoint ptr [[V1]] to i32
238
- ; CHECK-NEXT: [[AND :%.*]] = and i32 [[PTI]], -128
239
- ; CHECK-NEXT: [[ITP:%.*]] = inttoptr i32 [[AND ]] to ptr
238
+ ; CHECK-NEXT: [[ADD :%.*]] = and i32 [[PTI]], -128
239
+ ; CHECK-NEXT: [[ITP:%.*]] = inttoptr i32 [[ADD ]] to ptr
240
240
; CHECK-NEXT: [[PTI1:%.*]] = ptrtoint ptr [[V1]] to i32
241
241
; CHECK-NEXT: [[CST3:%.*]] = bitcast <64 x i16> [[A2:%.*]] to <32 x i32>
242
242
; CHECK-NEXT: [[CUP:%.*]] = call <32 x i32> @llvm.hexagon.V6.vlalignb.128B(<32 x i32> [[CST3]], <32 x i32> undef, i32 [[PTI1]])
@@ -260,14 +260,14 @@ define void @f5(ptr %a0, i32 %a1, <64 x i16> %a2, <64 x i16> %a3) #0 {
260
260
; CHECK-NEXT: [[TRN18:%.*]] = trunc <128 x i8> [[CST12]] to <128 x i1>
261
261
; CHECK-NEXT: call void @llvm.masked.store.v128i8.p0(<128 x i8> [[CST10]], ptr [[GEP]], i32 128, <128 x i1> [[TRN18]])
262
262
; CHECK-NEXT: [[GEP19:%.*]] = getelementptr i8, ptr [[ITP]], i32 256
263
- ; CHECK-NEXT: [[AND20 :%.*]] = and i32 [[PTI1]], 127
264
- ; CHECK-NEXT: [[ISZ:%.*]] = icmp ne i32 [[AND20 ]], 0
265
- ; CHECK-NEXT: [[TRN21 :%.*]] = trunc <128 x i8> [[CST17]] to <128 x i1>
266
- ; CHECK-NEXT: [[CUP22 :%.*]] = call <32 x i32> @llvm.hexagon.V6.vL32b.pred.ai.128B(i1 [[ISZ]], ptr [[GEP19]], i32 0), !tbaa [[TBAA7:![0-9]+]]
267
- ; CHECK-NEXT: [[CST23 :%.*]] = bitcast <32 x i32> [[CUP22 ]] to <128 x i8>
268
- ; CHECK-NEXT: [[TMP1:%.*]] = select <128 x i1> [[TRN21 ]], <128 x i8> [[CST15]], <128 x i8> [[CST23 ]]
269
- ; CHECK-NEXT: [[CST24 :%.*]] = bitcast <128 x i8> [[TMP1]] to <32 x i32>
270
- ; CHECK-NEXT: call void @llvm.hexagon.V6.vS32b.pred.ai.128B(i1 [[ISZ]], ptr [[GEP19]], i32 0, <32 x i32> [[CST24 ]]), !tbaa [[TBAA7]]
263
+ ; CHECK-NEXT: [[TMP0 :%.*]] = and i32 [[PTI1]], 127
264
+ ; CHECK-NEXT: [[ISZ:%.*]] = icmp ne i32 [[TMP0 ]], 0
265
+ ; CHECK-NEXT: [[TRN20 :%.*]] = trunc <128 x i8> [[CST17]] to <128 x i1>
266
+ ; CHECK-NEXT: [[CUP21 :%.*]] = call <32 x i32> @llvm.hexagon.V6.vL32b.pred.ai.128B(i1 [[ISZ]], ptr [[GEP19]], i32 0), !tbaa [[TBAA7:![0-9]+]]
267
+ ; CHECK-NEXT: [[CST22 :%.*]] = bitcast <32 x i32> [[CUP21 ]] to <128 x i8>
268
+ ; CHECK-NEXT: [[TMP1:%.*]] = select <128 x i1> [[TRN20 ]], <128 x i8> [[CST15]], <128 x i8> [[CST22 ]]
269
+ ; CHECK-NEXT: [[CST23 :%.*]] = bitcast <128 x i8> [[TMP1]] to <32 x i32>
270
+ ; CHECK-NEXT: call void @llvm.hexagon.V6.vS32b.pred.ai.128B(i1 [[ISZ]], ptr [[GEP19]], i32 0, <32 x i32> [[CST23 ]]), !tbaa [[TBAA7]]
271
271
; CHECK-NEXT: ret void
272
272
;
273
273
b0:
0 commit comments