@@ -60,8 +60,11 @@ body: |
6060 ; CHECK-NEXT: {{ $}}
6161 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
6262 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
63- ; CHECK-NEXT: %bv0:_(<4 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY]](s32), [[COPY1]](s32)
64- ; CHECK-NEXT: $q0 = COPY %bv0(<4 x s32>)
63+ ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)
64+ ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY1]](s32)
65+ ; CHECK-NEXT: %trunc:_(<4 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16), [[TRUNC]](s16), [[TRUNC1]](s16)
66+ ; CHECK-NEXT: %zext:_(<4 x s32>) = G_ZEXT %trunc(<4 x s16>)
67+ ; CHECK-NEXT: $q0 = COPY %zext(<4 x s32>)
6568 ; CHECK-NEXT: RET_ReallyLR implicit $w0
6669 %0:_(s32) = COPY $w0
6770 %1:_(s32) = COPY $w1
@@ -165,8 +168,13 @@ body: |
165168 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
166169 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
167170 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $w3
168- ; CHECK-NEXT: %bv0:_(<4 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32)
169- ; CHECK-NEXT: $q0 = COPY %bv0(<4 x s32>)
171+ ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)
172+ ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY1]](s32)
173+ ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY2]](s32)
174+ ; CHECK-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY3]](s32)
175+ ; CHECK-NEXT: %t:_(<4 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16), [[TRUNC2]](s16), [[TRUNC3]](s16)
176+ ; CHECK-NEXT: %s:_(<4 x s32>) = G_SEXT %t(<4 x s16>)
177+ ; CHECK-NEXT: $q0 = COPY %s(<4 x s32>)
170178 %0:_(s32) = COPY $w0
171179 %1:_(s32) = COPY $w1
172180 %2:_(s32) = COPY $w2
@@ -188,8 +196,11 @@ body: |
188196 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
189197 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
190198 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $w3
191- ; CHECK-NEXT: %bv0:_(<4 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32)
192- ; CHECK-NEXT: %t:_(<4 x s16>) = G_TRUNC %bv0(<4 x s32>)
199+ ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)
200+ ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY1]](s32)
201+ ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY2]](s32)
202+ ; CHECK-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY3]](s32)
203+ ; CHECK-NEXT: %t:_(<4 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16), [[TRUNC2]](s16), [[TRUNC3]](s16)
193204 ; CHECK-NEXT: %z:_(<4 x s32>) = G_ZEXT %t(<4 x s16>)
194205 ; CHECK-NEXT: $q0 = COPY %z(<4 x s32>)
195206 %0:_(s32) = COPY $w0
@@ -213,8 +224,11 @@ body: |
213224 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
214225 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
215226 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $w3
216- ; CHECK-NEXT: %bv0:_(<4 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32)
217- ; CHECK-NEXT: %t:_(<4 x s16>) = nsw G_TRUNC %bv0(<4 x s32>)
227+ ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)
228+ ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY1]](s32)
229+ ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY2]](s32)
230+ ; CHECK-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY3]](s32)
231+ ; CHECK-NEXT: %t:_(<4 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16), [[TRUNC2]](s16), [[TRUNC3]](s16)
218232 ; CHECK-NEXT: %z:_(<4 x s32>) = G_ZEXT %t(<4 x s16>)
219233 ; CHECK-NEXT: $q0 = COPY %z(<4 x s32>)
220234 %0:_(s32) = COPY $w0
@@ -238,8 +252,13 @@ body: |
238252 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
239253 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
240254 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $w3
241- ; CHECK-NEXT: %bv0:_(<4 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32)
242- ; CHECK-NEXT: $q0 = COPY %bv0(<4 x s32>)
255+ ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)
256+ ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY1]](s32)
257+ ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY2]](s32)
258+ ; CHECK-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY3]](s32)
259+ ; CHECK-NEXT: %t:_(<4 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16), [[TRUNC2]](s16), [[TRUNC3]](s16)
260+ ; CHECK-NEXT: %z:_(<4 x s32>) = G_ZEXT %t(<4 x s16>)
261+ ; CHECK-NEXT: $q0 = COPY %z(<4 x s32>)
243262 %0:_(s32) = COPY $w0
244263 %1:_(s32) = COPY $w1
245264 %2:_(s32) = COPY $w2
@@ -259,8 +278,10 @@ body: |
259278 ; CHECK-NEXT: {{ $}}
260279 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0
261280 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1
262- ; CHECK-NEXT: %bv0:_(<2 x s64>) = G_BUILD_VECTOR [[COPY]](s64), [[COPY1]](s64)
263- ; CHECK-NEXT: %z:_(<2 x s32>) = nuw G_TRUNC %bv0(<2 x s64>)
281+ ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s64)
282+ ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY1]](s64)
283+ ; CHECK-NEXT: %t:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)
284+ ; CHECK-NEXT: %z:_(<2 x s32>) = G_ZEXT %t(<2 x s16>)
264285 ; CHECK-NEXT: $d0 = COPY %z(<2 x s32>)
265286 %0:_(s64) = COPY $x0
266287 %1:_(s64) = COPY $x1
0 commit comments