@@ -213,9 +213,9 @@ define <8 x i8> @test_vrev64D8(ptr %A) nounwind {
213
213
; CHECK-NEXT: ldr d0, [x0]
214
214
; CHECK-NEXT: rev64.8b v0, v0
215
215
; CHECK-NEXT: ret
216
- %tmp1 = load <8 x i8 >, ptr %A
217
- %tmp2 = shufflevector <8 x i8 > %tmp1 , <8 x i8 > undef , <8 x i32 > <i32 7 , i32 6 , i32 5 , i32 4 , i32 3 , i32 2 , i32 1 , i32 0 >
218
- ret <8 x i8 > %tmp2
216
+ %tmp1 = load <8 x i8 >, ptr %A
217
+ %tmp2 = shufflevector <8 x i8 > %tmp1 , <8 x i8 > undef , <8 x i32 > <i32 7 , i32 6 , i32 5 , i32 4 , i32 3 , i32 2 , i32 1 , i32 0 >
218
+ ret <8 x i8 > %tmp2
219
219
}
220
220
221
221
define <4 x i16 > @test_vrev64D16 (ptr %A ) nounwind {
@@ -224,9 +224,9 @@ define <4 x i16> @test_vrev64D16(ptr %A) nounwind {
224
224
; CHECK-NEXT: ldr d0, [x0]
225
225
; CHECK-NEXT: rev64.4h v0, v0
226
226
; CHECK-NEXT: ret
227
- %tmp1 = load <4 x i16 >, ptr %A
228
- %tmp2 = shufflevector <4 x i16 > %tmp1 , <4 x i16 > undef , <4 x i32 > <i32 3 , i32 2 , i32 1 , i32 0 >
229
- ret <4 x i16 > %tmp2
227
+ %tmp1 = load <4 x i16 >, ptr %A
228
+ %tmp2 = shufflevector <4 x i16 > %tmp1 , <4 x i16 > undef , <4 x i32 > <i32 3 , i32 2 , i32 1 , i32 0 >
229
+ ret <4 x i16 > %tmp2
230
230
}
231
231
232
232
define <2 x i32 > @test_vrev64D32 (ptr %A ) nounwind {
@@ -235,9 +235,9 @@ define <2 x i32> @test_vrev64D32(ptr %A) nounwind {
235
235
; CHECK-NEXT: ldr d0, [x0]
236
236
; CHECK-NEXT: rev64.2s v0, v0
237
237
; CHECK-NEXT: ret
238
- %tmp1 = load <2 x i32 >, ptr %A
239
- %tmp2 = shufflevector <2 x i32 > %tmp1 , <2 x i32 > undef , <2 x i32 > <i32 1 , i32 0 >
240
- ret <2 x i32 > %tmp2
238
+ %tmp1 = load <2 x i32 >, ptr %A
239
+ %tmp2 = shufflevector <2 x i32 > %tmp1 , <2 x i32 > undef , <2 x i32 > <i32 1 , i32 0 >
240
+ ret <2 x i32 > %tmp2
241
241
}
242
242
243
243
define <2 x float > @test_vrev64Df (ptr %A ) nounwind {
@@ -246,9 +246,9 @@ define <2 x float> @test_vrev64Df(ptr %A) nounwind {
246
246
; CHECK-NEXT: ldr d0, [x0]
247
247
; CHECK-NEXT: rev64.2s v0, v0
248
248
; CHECK-NEXT: ret
249
- %tmp1 = load <2 x float >, ptr %A
250
- %tmp2 = shufflevector <2 x float > %tmp1 , <2 x float > undef , <2 x i32 > <i32 1 , i32 0 >
251
- ret <2 x float > %tmp2
249
+ %tmp1 = load <2 x float >, ptr %A
250
+ %tmp2 = shufflevector <2 x float > %tmp1 , <2 x float > undef , <2 x i32 > <i32 1 , i32 0 >
251
+ ret <2 x float > %tmp2
252
252
}
253
253
254
254
define <16 x i8 > @test_vrev64Q8 (ptr %A ) nounwind {
@@ -257,9 +257,9 @@ define <16 x i8> @test_vrev64Q8(ptr %A) nounwind {
257
257
; CHECK-NEXT: ldr q0, [x0]
258
258
; CHECK-NEXT: rev64.16b v0, v0
259
259
; CHECK-NEXT: ret
260
- %tmp1 = load <16 x i8 >, ptr %A
261
- %tmp2 = shufflevector <16 x i8 > %tmp1 , <16 x i8 > undef , <16 x i32 > <i32 7 , i32 6 , i32 5 , i32 4 , i32 3 , i32 2 , i32 1 , i32 0 , i32 15 , i32 14 , i32 13 , i32 12 , i32 11 , i32 10 , i32 9 , i32 8 >
262
- ret <16 x i8 > %tmp2
260
+ %tmp1 = load <16 x i8 >, ptr %A
261
+ %tmp2 = shufflevector <16 x i8 > %tmp1 , <16 x i8 > undef , <16 x i32 > <i32 7 , i32 6 , i32 5 , i32 4 , i32 3 , i32 2 , i32 1 , i32 0 , i32 15 , i32 14 , i32 13 , i32 12 , i32 11 , i32 10 , i32 9 , i32 8 >
262
+ ret <16 x i8 > %tmp2
263
263
}
264
264
265
265
define <8 x i16 > @test_vrev64Q16 (ptr %A ) nounwind {
@@ -268,9 +268,9 @@ define <8 x i16> @test_vrev64Q16(ptr %A) nounwind {
268
268
; CHECK-NEXT: ldr q0, [x0]
269
269
; CHECK-NEXT: rev64.8h v0, v0
270
270
; CHECK-NEXT: ret
271
- %tmp1 = load <8 x i16 >, ptr %A
272
- %tmp2 = shufflevector <8 x i16 > %tmp1 , <8 x i16 > undef , <8 x i32 > <i32 3 , i32 2 , i32 1 , i32 0 , i32 7 , i32 6 , i32 5 , i32 4 >
273
- ret <8 x i16 > %tmp2
271
+ %tmp1 = load <8 x i16 >, ptr %A
272
+ %tmp2 = shufflevector <8 x i16 > %tmp1 , <8 x i16 > undef , <8 x i32 > <i32 3 , i32 2 , i32 1 , i32 0 , i32 7 , i32 6 , i32 5 , i32 4 >
273
+ ret <8 x i16 > %tmp2
274
274
}
275
275
276
276
define <4 x i32 > @test_vrev64Q32 (ptr %A ) nounwind {
@@ -279,9 +279,9 @@ define <4 x i32> @test_vrev64Q32(ptr %A) nounwind {
279
279
; CHECK-NEXT: ldr q0, [x0]
280
280
; CHECK-NEXT: rev64.4s v0, v0
281
281
; CHECK-NEXT: ret
282
- %tmp1 = load <4 x i32 >, ptr %A
283
- %tmp2 = shufflevector <4 x i32 > %tmp1 , <4 x i32 > undef , <4 x i32 > <i32 1 , i32 0 , i32 3 , i32 2 >
284
- ret <4 x i32 > %tmp2
282
+ %tmp1 = load <4 x i32 >, ptr %A
283
+ %tmp2 = shufflevector <4 x i32 > %tmp1 , <4 x i32 > undef , <4 x i32 > <i32 1 , i32 0 , i32 3 , i32 2 >
284
+ ret <4 x i32 > %tmp2
285
285
}
286
286
287
287
define <4 x float > @test_vrev64Qf (ptr %A ) nounwind {
@@ -290,9 +290,9 @@ define <4 x float> @test_vrev64Qf(ptr %A) nounwind {
290
290
; CHECK-NEXT: ldr q0, [x0]
291
291
; CHECK-NEXT: rev64.4s v0, v0
292
292
; CHECK-NEXT: ret
293
- %tmp1 = load <4 x float >, ptr %A
294
- %tmp2 = shufflevector <4 x float > %tmp1 , <4 x float > undef , <4 x i32 > <i32 1 , i32 0 , i32 3 , i32 2 >
295
- ret <4 x float > %tmp2
293
+ %tmp1 = load <4 x float >, ptr %A
294
+ %tmp2 = shufflevector <4 x float > %tmp1 , <4 x float > undef , <4 x i32 > <i32 1 , i32 0 , i32 3 , i32 2 >
295
+ ret <4 x float > %tmp2
296
296
}
297
297
298
298
define <8 x i8 > @test_vrev32D8 (ptr %A ) nounwind {
@@ -301,9 +301,9 @@ define <8 x i8> @test_vrev32D8(ptr %A) nounwind {
301
301
; CHECK-NEXT: ldr d0, [x0]
302
302
; CHECK-NEXT: rev32.8b v0, v0
303
303
; CHECK-NEXT: ret
304
- %tmp1 = load <8 x i8 >, ptr %A
305
- %tmp2 = shufflevector <8 x i8 > %tmp1 , <8 x i8 > undef , <8 x i32 > <i32 3 , i32 2 , i32 1 , i32 0 , i32 7 , i32 6 , i32 5 , i32 4 >
306
- ret <8 x i8 > %tmp2
304
+ %tmp1 = load <8 x i8 >, ptr %A
305
+ %tmp2 = shufflevector <8 x i8 > %tmp1 , <8 x i8 > undef , <8 x i32 > <i32 3 , i32 2 , i32 1 , i32 0 , i32 7 , i32 6 , i32 5 , i32 4 >
306
+ ret <8 x i8 > %tmp2
307
307
}
308
308
309
309
define <4 x i16 > @test_vrev32D16 (ptr %A ) nounwind {
@@ -312,9 +312,9 @@ define <4 x i16> @test_vrev32D16(ptr %A) nounwind {
312
312
; CHECK-NEXT: ldr d0, [x0]
313
313
; CHECK-NEXT: rev32.4h v0, v0
314
314
; CHECK-NEXT: ret
315
- %tmp1 = load <4 x i16 >, ptr %A
316
- %tmp2 = shufflevector <4 x i16 > %tmp1 , <4 x i16 > undef , <4 x i32 > <i32 1 , i32 0 , i32 3 , i32 2 >
317
- ret <4 x i16 > %tmp2
315
+ %tmp1 = load <4 x i16 >, ptr %A
316
+ %tmp2 = shufflevector <4 x i16 > %tmp1 , <4 x i16 > undef , <4 x i32 > <i32 1 , i32 0 , i32 3 , i32 2 >
317
+ ret <4 x i16 > %tmp2
318
318
}
319
319
320
320
define <16 x i8 > @test_vrev32Q8 (ptr %A ) nounwind {
@@ -323,9 +323,9 @@ define <16 x i8> @test_vrev32Q8(ptr %A) nounwind {
323
323
; CHECK-NEXT: ldr q0, [x0]
324
324
; CHECK-NEXT: rev32.16b v0, v0
325
325
; CHECK-NEXT: ret
326
- %tmp1 = load <16 x i8 >, ptr %A
327
- %tmp2 = shufflevector <16 x i8 > %tmp1 , <16 x i8 > undef , <16 x i32 > <i32 3 , i32 2 , i32 1 , i32 0 , i32 7 , i32 6 , i32 5 , i32 4 , i32 11 , i32 10 , i32 9 , i32 8 , i32 15 , i32 14 , i32 13 , i32 12 >
328
- ret <16 x i8 > %tmp2
326
+ %tmp1 = load <16 x i8 >, ptr %A
327
+ %tmp2 = shufflevector <16 x i8 > %tmp1 , <16 x i8 > undef , <16 x i32 > <i32 3 , i32 2 , i32 1 , i32 0 , i32 7 , i32 6 , i32 5 , i32 4 , i32 11 , i32 10 , i32 9 , i32 8 , i32 15 , i32 14 , i32 13 , i32 12 >
328
+ ret <16 x i8 > %tmp2
329
329
}
330
330
331
331
define <8 x i16 > @test_vrev32Q16 (ptr %A ) nounwind {
@@ -334,9 +334,9 @@ define <8 x i16> @test_vrev32Q16(ptr %A) nounwind {
334
334
; CHECK-NEXT: ldr q0, [x0]
335
335
; CHECK-NEXT: rev32.8h v0, v0
336
336
; CHECK-NEXT: ret
337
- %tmp1 = load <8 x i16 >, ptr %A
338
- %tmp2 = shufflevector <8 x i16 > %tmp1 , <8 x i16 > undef , <8 x i32 > <i32 1 , i32 0 , i32 3 , i32 2 , i32 5 , i32 4 , i32 7 , i32 6 >
339
- ret <8 x i16 > %tmp2
337
+ %tmp1 = load <8 x i16 >, ptr %A
338
+ %tmp2 = shufflevector <8 x i16 > %tmp1 , <8 x i16 > undef , <8 x i32 > <i32 1 , i32 0 , i32 3 , i32 2 , i32 5 , i32 4 , i32 7 , i32 6 >
339
+ ret <8 x i16 > %tmp2
340
340
}
341
341
342
342
define <8 x i8 > @test_vrev16D8 (ptr %A ) nounwind {
@@ -345,9 +345,9 @@ define <8 x i8> @test_vrev16D8(ptr %A) nounwind {
345
345
; CHECK-NEXT: ldr d0, [x0]
346
346
; CHECK-NEXT: rev16.8b v0, v0
347
347
; CHECK-NEXT: ret
348
- %tmp1 = load <8 x i8 >, ptr %A
349
- %tmp2 = shufflevector <8 x i8 > %tmp1 , <8 x i8 > undef , <8 x i32 > <i32 1 , i32 0 , i32 3 , i32 2 , i32 5 , i32 4 , i32 7 , i32 6 >
350
- ret <8 x i8 > %tmp2
348
+ %tmp1 = load <8 x i8 >, ptr %A
349
+ %tmp2 = shufflevector <8 x i8 > %tmp1 , <8 x i8 > undef , <8 x i32 > <i32 1 , i32 0 , i32 3 , i32 2 , i32 5 , i32 4 , i32 7 , i32 6 >
350
+ ret <8 x i8 > %tmp2
351
351
}
352
352
353
353
define <16 x i8 > @test_vrev16Q8 (ptr %A ) nounwind {
@@ -356,9 +356,81 @@ define <16 x i8> @test_vrev16Q8(ptr %A) nounwind {
356
356
; CHECK-NEXT: ldr q0, [x0]
357
357
; CHECK-NEXT: rev16.16b v0, v0
358
358
; CHECK-NEXT: ret
359
- %tmp1 = load <16 x i8 >, ptr %A
360
- %tmp2 = shufflevector <16 x i8 > %tmp1 , <16 x i8 > undef , <16 x i32 > <i32 1 , i32 0 , i32 3 , i32 2 , i32 5 , i32 4 , i32 7 , i32 6 , i32 9 , i32 8 , i32 11 , i32 10 , i32 13 , i32 12 , i32 15 , i32 14 >
361
- ret <16 x i8 > %tmp2
359
+ %tmp1 = load <16 x i8 >, ptr %A
360
+ %tmp2 = shufflevector <16 x i8 > %tmp1 , <16 x i8 > undef , <16 x i32 > <i32 1 , i32 0 , i32 3 , i32 2 , i32 5 , i32 4 , i32 7 , i32 6 , i32 9 , i32 8 , i32 11 , i32 10 , i32 13 , i32 12 , i32 15 , i32 14 >
361
+ ret <16 x i8 > %tmp2
362
+ }
363
+
364
+ define <4 x half > @test_vrev32Df16 (<4 x half > %A ) nounwind {
365
+ ; CHECK-LABEL: test_vrev32Df16:
366
+ ; CHECK: // %bb.0:
367
+ ; CHECK-NEXT: rev32.4h v0, v0
368
+ ; CHECK-NEXT: ret
369
+ %tmp2 = shufflevector <4 x half > %A , <4 x half > poison, <4 x i32 > <i32 1 , i32 0 , i32 3 , i32 2 >
370
+ ret <4 x half > %tmp2
371
+ }
372
+
373
+ define <8 x half > @test_vrev32Qf16 (<8 x half > %A ) nounwind {
374
+ ; CHECK-LABEL: test_vrev32Qf16:
375
+ ; CHECK: // %bb.0:
376
+ ; CHECK-NEXT: rev32.8h v0, v0
377
+ ; CHECK-NEXT: ret
378
+ %tmp2 = shufflevector <8 x half > %A , <8 x half > poison, <8 x i32 > <i32 1 , i32 0 , i32 3 , i32 2 , i32 5 , i32 4 , i32 7 , i32 6 >
379
+ ret <8 x half > %tmp2
380
+ }
381
+
382
+ define <4 x half > @test_vrev64Df16 (<4 x half > %A ) nounwind {
383
+ ; CHECK-LABEL: test_vrev64Df16:
384
+ ; CHECK: // %bb.0:
385
+ ; CHECK-NEXT: rev64.4h v0, v0
386
+ ; CHECK-NEXT: ret
387
+ %tmp2 = shufflevector <4 x half > %A , <4 x half > poison, <4 x i32 > <i32 3 , i32 2 , i32 1 , i32 0 >
388
+ ret <4 x half > %tmp2
389
+ }
390
+
391
+ define <8 x half > @test_vrev64Qf16 (<8 x half > %A ) nounwind {
392
+ ; CHECK-LABEL: test_vrev64Qf16:
393
+ ; CHECK: // %bb.0:
394
+ ; CHECK-NEXT: rev64.8h v0, v0
395
+ ; CHECK-NEXT: ret
396
+ %tmp2 = shufflevector <8 x half > %A , <8 x half > poison, <8 x i32 > <i32 3 , i32 2 , i32 1 , i32 0 , i32 7 , i32 6 , i32 5 , i32 4 >
397
+ ret <8 x half > %tmp2
398
+ }
399
+
400
+ define <4 x bfloat> @test_vrev32Dbf16 (<4 x bfloat> %A ) nounwind {
401
+ ; CHECK-LABEL: test_vrev32Dbf16:
402
+ ; CHECK: // %bb.0:
403
+ ; CHECK-NEXT: rev32.4h v0, v0
404
+ ; CHECK-NEXT: ret
405
+ %tmp2 = shufflevector <4 x bfloat> %A , <4 x bfloat> poison, <4 x i32 > <i32 1 , i32 0 , i32 3 , i32 2 >
406
+ ret <4 x bfloat> %tmp2
407
+ }
408
+
409
+ define <8 x bfloat> @test_vrev32Qbf16 (<8 x bfloat> %A ) nounwind {
410
+ ; CHECK-LABEL: test_vrev32Qbf16:
411
+ ; CHECK: // %bb.0:
412
+ ; CHECK-NEXT: rev32.8h v0, v0
413
+ ; CHECK-NEXT: ret
414
+ %tmp2 = shufflevector <8 x bfloat> %A , <8 x bfloat> poison, <8 x i32 > <i32 1 , i32 0 , i32 3 , i32 2 , i32 5 , i32 4 , i32 7 , i32 6 >
415
+ ret <8 x bfloat> %tmp2
416
+ }
417
+
418
+ define <4 x bfloat> @test_vrev64Dbf16 (<4 x bfloat> %A ) nounwind {
419
+ ; CHECK-LABEL: test_vrev64Dbf16:
420
+ ; CHECK: // %bb.0:
421
+ ; CHECK-NEXT: rev64.4h v0, v0
422
+ ; CHECK-NEXT: ret
423
+ %tmp2 = shufflevector <4 x bfloat> %A , <4 x bfloat> poison, <4 x i32 > <i32 3 , i32 2 , i32 1 , i32 0 >
424
+ ret <4 x bfloat> %tmp2
425
+ }
426
+
427
+ define <8 x bfloat> @test_vrev64Qbf16 (<8 x bfloat> %A ) nounwind {
428
+ ; CHECK-LABEL: test_vrev64Qbf16:
429
+ ; CHECK: // %bb.0:
430
+ ; CHECK-NEXT: rev64.8h v0, v0
431
+ ; CHECK-NEXT: ret
432
+ %tmp2 = shufflevector <8 x bfloat> %A , <8 x bfloat> poison, <8 x i32 > <i32 3 , i32 2 , i32 1 , i32 0 , i32 7 , i32 6 , i32 5 , i32 4 >
433
+ ret <8 x bfloat> %tmp2
362
434
}
363
435
364
436
; Undef shuffle indices should not prevent matching to VREV:
@@ -369,9 +441,9 @@ define <8 x i8> @test_vrev64D8_undef(ptr %A) nounwind {
369
441
; CHECK-NEXT: ldr d0, [x0]
370
442
; CHECK-NEXT: rev64.8b v0, v0
371
443
; CHECK-NEXT: ret
372
- %tmp1 = load <8 x i8 >, ptr %A
373
- %tmp2 = shufflevector <8 x i8 > %tmp1 , <8 x i8 > undef , <8 x i32 > <i32 7 , i32 undef , i32 undef , i32 4 , i32 3 , i32 2 , i32 1 , i32 0 >
374
- ret <8 x i8 > %tmp2
444
+ %tmp1 = load <8 x i8 >, ptr %A
445
+ %tmp2 = shufflevector <8 x i8 > %tmp1 , <8 x i8 > undef , <8 x i32 > <i32 7 , i32 undef , i32 undef , i32 4 , i32 3 , i32 2 , i32 1 , i32 0 >
446
+ ret <8 x i8 > %tmp2
375
447
}
376
448
377
449
define <8 x i16 > @test_vrev32Q16_undef (ptr %A ) nounwind {
@@ -380,9 +452,9 @@ define <8 x i16> @test_vrev32Q16_undef(ptr %A) nounwind {
380
452
; CHECK-NEXT: ldr q0, [x0]
381
453
; CHECK-NEXT: rev32.8h v0, v0
382
454
; CHECK-NEXT: ret
383
- %tmp1 = load <8 x i16 >, ptr %A
384
- %tmp2 = shufflevector <8 x i16 > %tmp1 , <8 x i16 > undef , <8 x i32 > <i32 undef , i32 0 , i32 undef , i32 2 , i32 5 , i32 4 , i32 7 , i32 undef >
385
- ret <8 x i16 > %tmp2
455
+ %tmp1 = load <8 x i16 >, ptr %A
456
+ %tmp2 = shufflevector <8 x i16 > %tmp1 , <8 x i16 > undef , <8 x i32 > <i32 undef , i32 0 , i32 undef , i32 2 , i32 5 , i32 4 , i32 7 , i32 undef >
457
+ ret <8 x i16 > %tmp2
386
458
}
387
459
388
460
; vrev <4 x i16> should use REV32 and not REV64
@@ -426,9 +498,9 @@ define void @float_vrev64(ptr nocapture %source, ptr nocapture %dest) nounwind n
426
498
; CHECK-GI-LABEL: float_vrev64:
427
499
; CHECK-GI: // %bb.0: // %entry
428
500
; CHECK-GI-NEXT: movi d0, #0000000000000000
429
- ; CHECK-GI-NEXT: adrp x8, .LCPI28_0
501
+ ; CHECK-GI-NEXT: adrp x8, .LCPI36_0
430
502
; CHECK-GI-NEXT: ldr q1, [x0]
431
- ; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI28_0 ]
503
+ ; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI36_0 ]
432
504
; CHECK-GI-NEXT: tbl.16b v0, { v0, v1 }, v2
433
505
; CHECK-GI-NEXT: str q0, [x1, #176]
434
506
; CHECK-GI-NEXT: ret
@@ -456,27 +528,27 @@ declare <4 x i32> @llvm.bswap.v4i32(<4 x i32>) nounwind readnone
456
528
define void @test_rev16_truncstore () {
457
529
; CHECK-SD-LABEL: test_rev16_truncstore:
458
530
; CHECK-SD: // %bb.0: // %entry
459
- ; CHECK-SD-NEXT: cbnz wzr, .LBB30_2
460
- ; CHECK-SD-NEXT: .LBB30_1 : // %cleanup
531
+ ; CHECK-SD-NEXT: cbnz wzr, .LBB38_2
532
+ ; CHECK-SD-NEXT: .LBB38_1 : // %cleanup
461
533
; CHECK-SD-NEXT: // =>This Inner Loop Header: Depth=1
462
534
; CHECK-SD-NEXT: ldrh w8, [x8]
463
535
; CHECK-SD-NEXT: rev16 w8, w8
464
536
; CHECK-SD-NEXT: strh w8, [x8]
465
- ; CHECK-SD-NEXT: cbz wzr, .LBB30_1
466
- ; CHECK-SD-NEXT: .LBB30_2 : // %fail
537
+ ; CHECK-SD-NEXT: cbz wzr, .LBB38_1
538
+ ; CHECK-SD-NEXT: .LBB38_2 : // %fail
467
539
; CHECK-SD-NEXT: ret
468
540
;
469
541
; CHECK-GI-LABEL: test_rev16_truncstore:
470
542
; CHECK-GI: // %bb.0: // %entry
471
- ; CHECK-GI-NEXT: tbnz wzr, #0, .LBB30_2
472
- ; CHECK-GI-NEXT: .LBB30_1 : // %cleanup
543
+ ; CHECK-GI-NEXT: tbnz wzr, #0, .LBB38_2
544
+ ; CHECK-GI-NEXT: .LBB38_1 : // %cleanup
473
545
; CHECK-GI-NEXT: // =>This Inner Loop Header: Depth=1
474
546
; CHECK-GI-NEXT: ldrh w8, [x8]
475
547
; CHECK-GI-NEXT: rev w8, w8
476
548
; CHECK-GI-NEXT: lsr w8, w8, #16
477
549
; CHECK-GI-NEXT: strh w8, [x8]
478
- ; CHECK-GI-NEXT: tbz wzr, #0, .LBB30_1
479
- ; CHECK-GI-NEXT: .LBB30_2 : // %fail
550
+ ; CHECK-GI-NEXT: tbz wzr, #0, .LBB38_1
551
+ ; CHECK-GI-NEXT: .LBB38_2 : // %fail
480
552
; CHECK-GI-NEXT: ret
481
553
entry:
482
554
br label %body
0 commit comments