Skip to content

Commit 23c7679

Browse files
committed
[CodeGen][NFC] Regenerate load-combine test with update_llc_test.
To prepare for D27861.
1 parent 089c0f5 commit 23c7679

File tree

4 files changed

+673
-509
lines changed

4 files changed

+673
-509
lines changed

llvm/test/CodeGen/AArch64/load-combine-big-endian.ll

Lines changed: 92 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
12
; RUN: llc < %s -mtriple=arm64eb-unknown | FileCheck %s
23

34
; i8* p; // p is 4 byte aligned
45
; ((i32) p[0] << 24) | ((i32) p[1] << 16) | ((i32) p[2] << 8) | (i32) p[3]
56
define i32 @load_i32_by_i8_big_endian(i32* %arg) {
67
; CHECK-LABEL: load_i32_by_i8_big_endian:
7-
; CHECK: ldr w0, [x0]
8-
; CHECK-NEXT: ret
8+
; CHECK: // %bb.0:
9+
; CHECK-NEXT: ldr w0, [x0]
10+
; CHECK-NEXT: ret
911
%tmp = bitcast i32* %arg to i8*
1012
%tmp1 = load i8, i8* %tmp, align 4
1113
%tmp2 = zext i8 %tmp1 to i32
@@ -31,8 +33,9 @@ define i32 @load_i32_by_i8_big_endian(i32* %arg) {
3133
; ((i32) (((i16) p[0] << 8) | (i16) p[1]) << 16) | (i32) (((i16) p[3] << 8) | (i16) p[4])
3234
define i32 @load_i32_by_i16_by_i8_big_endian(i32* %arg) {
3335
; CHECK-LABEL: load_i32_by_i16_by_i8_big_endian:
34-
; CHECK: ldr w0, [x0]
35-
; CHECK-NEXT: ret
36+
; CHECK: // %bb.0:
37+
; CHECK-NEXT: ldr w0, [x0]
38+
; CHECK-NEXT: ret
3639
%tmp = bitcast i32* %arg to i8*
3740
%tmp1 = load i8, i8* %tmp, align 4
3841
%tmp2 = zext i8 %tmp1 to i16
@@ -60,8 +63,9 @@ define i32 @load_i32_by_i16_by_i8_big_endian(i32* %arg) {
6063
; ((i32) p[0] << 16) | (i32) p[1]
6164
define i32 @load_i32_by_i16(i32* %arg) {
6265
; CHECK-LABEL: load_i32_by_i16:
63-
; CHECK: ldr w0, [x0]
64-
; CHECK-NEXT: ret
66+
; CHECK: // %bb.0:
67+
; CHECK-NEXT: ldr w0, [x0]
68+
; CHECK-NEXT: ret
6569
%tmp = bitcast i32* %arg to i16*
6670
%tmp1 = load i16, i16* %tmp, align 4
6771
%tmp2 = zext i16 %tmp1 to i32
@@ -78,8 +82,9 @@ define i32 @load_i32_by_i16(i32* %arg) {
7882
; (i32) (p_16[0] << 16) | ((i32) p[2] << 8) | (i32) p[3]
7983
define i32 @load_i32_by_i16_i8(i32* %arg) {
8084
; CHECK-LABEL: load_i32_by_i16_i8:
81-
; CHECK: ldr w0, [x0]
82-
; CHECK-NEXT: ret
85+
; CHECK: // %bb.0:
86+
; CHECK-NEXT: ldr w0, [x0]
87+
; CHECK-NEXT: ret
8388
%tmp = bitcast i32* %arg to i16*
8489
%tmp1 = bitcast i32* %arg to i8*
8590
%tmp2 = load i16, i16* %tmp, align 4
@@ -101,9 +106,10 @@ define i32 @load_i32_by_i16_i8(i32* %arg) {
101106
; (i64) p[0] | ((i64) p[1] << 8) | ((i64) p[2] << 16) | ((i64) p[3] << 24) | ((i64) p[4] << 32) | ((i64) p[5] << 40) | ((i64) p[6] << 48) | ((i64) p[7] << 56)
102107
define i64 @load_i64_by_i8_bswap(i64* %arg) {
103108
; CHECK-LABEL: load_i64_by_i8_bswap:
104-
; CHECK: ldr x8, [x0]
105-
; CHECK-NEXT: rev x0, x8
106-
; CHECK-NEXT: ret
109+
; CHECK: // %bb.0:
110+
; CHECK-NEXT: ldr x8, [x0]
111+
; CHECK-NEXT: rev x0, x8
112+
; CHECK-NEXT: ret
107113
%tmp = bitcast i64* %arg to i8*
108114
%tmp1 = load i8, i8* %tmp, align 8
109115
%tmp2 = zext i8 %tmp1 to i64
@@ -149,8 +155,9 @@ define i64 @load_i64_by_i8_bswap(i64* %arg) {
149155
; ((i64) p[0] << 56) | ((i64) p[1] << 48) | ((i64) p[2] << 40) | ((i64) p[3] << 32) | ((i64) p[4] << 24) | ((i64) p[5] << 16) | ((i64) p[6] << 8) | (i64) p[7]
150156
define i64 @load_i64_by_i8(i64* %arg) {
151157
; CHECK-LABEL: load_i64_by_i8:
152-
; CHECK: ldr x0, [x0]
153-
; CHECK-NEXT: ret
158+
; CHECK: // %bb.0:
159+
; CHECK-NEXT: ldr x0, [x0]
160+
; CHECK-NEXT: ret
154161
%tmp = bitcast i64* %arg to i8*
155162
%tmp1 = load i8, i8* %tmp, align 8
156163
%tmp2 = zext i8 %tmp1 to i64
@@ -196,9 +203,10 @@ define i64 @load_i64_by_i8(i64* %arg) {
196203
; (i32) p[1] | ((i32) p[2] << 8) | ((i32) p[3] << 16) | ((i32) p[4] << 24)
197204
define i32 @load_i32_by_i8_nonzero_offset(i32* %arg) {
198205
; CHECK-LABEL: load_i32_by_i8_nonzero_offset:
199-
; CHECK: ldur w8, [x0, #1]
200-
; CHECK-NEXT: rev w0, w8
201-
; CHECK-NEXT: ret
206+
; CHECK: // %bb.0:
207+
; CHECK-NEXT: ldur w8, [x0, #1]
208+
; CHECK-NEXT: rev w0, w8
209+
; CHECK-NEXT: ret
202210

203211
%tmp = bitcast i32* %arg to i8*
204212
%tmp1 = getelementptr inbounds i8, i8* %tmp, i32 1
@@ -226,9 +234,10 @@ define i32 @load_i32_by_i8_nonzero_offset(i32* %arg) {
226234
; (i32) p[-4] | ((i32) p[-3] << 8) | ((i32) p[-2] << 16) | ((i32) p[-1] << 24)
227235
define i32 @load_i32_by_i8_neg_offset(i32* %arg) {
228236
; CHECK-LABEL: load_i32_by_i8_neg_offset:
229-
; CHECK: ldur w8, [x0, #-4]
230-
; CHECK-NEXT: rev w0, w8
231-
; CHECK-NEXT: ret
237+
; CHECK: // %bb.0:
238+
; CHECK-NEXT: ldur w8, [x0, #-4]
239+
; CHECK-NEXT: rev w0, w8
240+
; CHECK-NEXT: ret
232241

233242
%tmp = bitcast i32* %arg to i8*
234243
%tmp1 = getelementptr inbounds i8, i8* %tmp, i32 -4
@@ -256,8 +265,9 @@ define i32 @load_i32_by_i8_neg_offset(i32* %arg) {
256265
; (i32) p[4] | ((i32) p[3] << 8) | ((i32) p[2] << 16) | ((i32) p[1] << 24)
257266
define i32 @load_i32_by_i8_nonzero_offset_bswap(i32* %arg) {
258267
; CHECK-LABEL: load_i32_by_i8_nonzero_offset_bswap:
259-
; CHECK: ldur w0, [x0, #1]
260-
; CHECK-NEXT: ret
268+
; CHECK: // %bb.0:
269+
; CHECK-NEXT: ldur w0, [x0, #1]
270+
; CHECK-NEXT: ret
261271

262272
%tmp = bitcast i32* %arg to i8*
263273
%tmp1 = getelementptr inbounds i8, i8* %tmp, i32 4
@@ -285,8 +295,9 @@ define i32 @load_i32_by_i8_nonzero_offset_bswap(i32* %arg) {
285295
; (i32) p[-1] | ((i32) p[-2] << 8) | ((i32) p[-3] << 16) | ((i32) p[-4] << 24)
286296
define i32 @load_i32_by_i8_neg_offset_bswap(i32* %arg) {
287297
; CHECK-LABEL: load_i32_by_i8_neg_offset_bswap:
288-
; CHECK: ldur w0, [x0, #-4]
289-
; CHECK-NEXT: ret
298+
; CHECK: // %bb.0:
299+
; CHECK-NEXT: ldur w0, [x0, #-4]
300+
; CHECK-NEXT: ret
290301

291302
%tmp = bitcast i32* %arg to i8*
292303
%tmp1 = getelementptr inbounds i8, i8* %tmp, i32 -1
@@ -316,9 +327,10 @@ declare i16 @llvm.bswap.i16(i16)
316327
; (i32) bswap(p[0]) | (i32) bswap(p[1] << 16)
317328
define i32 @load_i32_by_bswap_i16(i32* %arg) {
318329
; CHECK-LABEL: load_i32_by_bswap_i16:
319-
; CHECK: ldr w8, [x0]
320-
; CHECK-NEXT: rev w0, w8
321-
; CHECK-NEXT: ret
330+
; CHECK: // %bb.0:
331+
; CHECK-NEXT: ldr w8, [x0]
332+
; CHECK-NEXT: rev w0, w8
333+
; CHECK-NEXT: ret
322334
%tmp = bitcast i32* %arg to i16*
323335
%tmp1 = load i16, i16* %tmp, align 4
324336
%tmp11 = call i16 @llvm.bswap.i16(i16 %tmp1)
@@ -336,8 +348,9 @@ define i32 @load_i32_by_bswap_i16(i32* %arg) {
336348
; (i32) p[1] | (sext(p[0] << 16) to i32)
337349
define i32 @load_i32_by_sext_i16(i32* %arg) {
338350
; CHECK-LABEL: load_i32_by_sext_i16:
339-
; CHECK: ldr w0, [x0]
340-
; CHECK-NEXT: ret
351+
; CHECK: // %bb.0:
352+
; CHECK-NEXT: ldr w0, [x0]
353+
; CHECK-NEXT: ret
341354
%tmp = bitcast i32* %arg to i16*
342355
%tmp1 = load i16, i16* %tmp, align 4
343356
%tmp2 = sext i16 %tmp1 to i32
@@ -354,10 +367,11 @@ define i32 @load_i32_by_sext_i16(i32* %arg) {
354367
; (i32) p[i] | ((i32) p[i + 1] << 8) | ((i32) p[i + 2] << 16) | ((i32) p[i + 3] << 24)
355368
define i32 @load_i32_by_i8_base_offset_index(i8* %arg, i32 %i) {
356369
; CHECK-LABEL: load_i32_by_i8_base_offset_index:
357-
; CHECK: add x8, x0, w1, uxtw
358-
; CHECK-NEXT: ldr w8, [x8, #12]
359-
; CHECK-NEXT: rev w0, w8
360-
; CHECK-NEXT: ret
370+
; CHECK: // %bb.0:
371+
; CHECK-NEXT: add x8, x0, w1, uxtw
372+
; CHECK-NEXT: ldr w8, [x8, #12]
373+
; CHECK-NEXT: rev w0, w8
374+
; CHECK-NEXT: ret
361375
%tmp = add nuw nsw i32 %i, 3
362376
%tmp2 = add nuw nsw i32 %i, 2
363377
%tmp3 = add nuw nsw i32 %i, 1
@@ -392,10 +406,11 @@ define i32 @load_i32_by_i8_base_offset_index(i8* %arg, i32 %i) {
392406
; (i32) p[i + 1] | ((i32) p[i + 2] << 8) | ((i32) p[i + 3] << 16) | ((i32) p[i + 4] << 24)
393407
define i32 @load_i32_by_i8_base_offset_index_2(i8* %arg, i32 %i) {
394408
; CHECK-LABEL: load_i32_by_i8_base_offset_index_2:
395-
; CHECK: add x8, x0, w1, uxtw
396-
; CHECK-NEXT: ldur w8, [x8, #13]
397-
; CHECK-NEXT: rev w0, w8
398-
; CHECK-NEXT: ret
409+
; CHECK: // %bb.0:
410+
; CHECK-NEXT: add x8, x0, w1, uxtw
411+
; CHECK-NEXT: ldur w8, [x8, #13]
412+
; CHECK-NEXT: rev w0, w8
413+
; CHECK-NEXT: ret
399414
%tmp = add nuw nsw i32 %i, 4
400415
%tmp2 = add nuw nsw i32 %i, 3
401416
%tmp3 = add nuw nsw i32 %i, 2
@@ -429,11 +444,12 @@ define i32 @load_i32_by_i8_base_offset_index_2(i8* %arg, i32 %i) {
429444
; (i32) p[0] | ((i32) p[1] << 8)
430445
define i32 @zext_load_i32_by_i8(i32* %arg) {
431446
; CHECK-LABEL: zext_load_i32_by_i8:
432-
; CHECK: ldrb w8, [x0]
433-
; CHECK-NEXT: ldrb w9, [x0, #1]
434-
; CHECK-NEXT: bfi w8, w9, #8, #8
435-
; CHECK-NEXT: mov w0, w8
436-
; CHECK-NEXT: ret
447+
; CHECK: // %bb.0:
448+
; CHECK-NEXT: ldrb w8, [x0]
449+
; CHECK-NEXT: ldrb w9, [x0, #1]
450+
; CHECK-NEXT: bfi w8, w9, #8, #8
451+
; CHECK-NEXT: mov w0, w8
452+
; CHECK-NEXT: ret
437453

438454
%tmp = bitcast i32* %arg to i8*
439455
%tmp1 = getelementptr inbounds i8, i8* %tmp, i32 0
@@ -451,11 +467,12 @@ define i32 @zext_load_i32_by_i8(i32* %arg) {
451467
; ((i32) p[0] << 8) | ((i32) p[1] << 16)
452468
define i32 @zext_load_i32_by_i8_shl_8(i32* %arg) {
453469
; CHECK-LABEL: zext_load_i32_by_i8_shl_8:
454-
; CHECK: ldrb w8, [x0]
455-
; CHECK-NEXT: ldrb w9, [x0, #1]
456-
; CHECK-NEXT: lsl w0, w8, #8
457-
; CHECK-NEXT: bfi w0, w9, #16, #8
458-
; CHECK-NEXT: ret
470+
; CHECK: // %bb.0:
471+
; CHECK-NEXT: ldrb w8, [x0]
472+
; CHECK-NEXT: ldrb w9, [x0, #1]
473+
; CHECK-NEXT: lsl w0, w8, #8
474+
; CHECK-NEXT: bfi w0, w9, #16, #8
475+
; CHECK-NEXT: ret
459476

460477
%tmp = bitcast i32* %arg to i8*
461478
%tmp1 = getelementptr inbounds i8, i8* %tmp, i32 0
@@ -474,11 +491,12 @@ define i32 @zext_load_i32_by_i8_shl_8(i32* %arg) {
474491
; ((i32) p[0] << 16) | ((i32) p[1] << 24)
475492
define i32 @zext_load_i32_by_i8_shl_16(i32* %arg) {
476493
; CHECK-LABEL: zext_load_i32_by_i8_shl_16:
477-
; CHECK: ldrb w8, [x0]
478-
; CHECK-NEXT: ldrb w9, [x0, #1]
479-
; CHECK-NEXT: lsl w0, w8, #16
480-
; CHECK-NEXT: bfi w0, w9, #24, #8
481-
; CHECK-NEXT: ret
494+
; CHECK: // %bb.0:
495+
; CHECK-NEXT: ldrb w8, [x0]
496+
; CHECK-NEXT: ldrb w9, [x0, #1]
497+
; CHECK-NEXT: lsl w0, w8, #16
498+
; CHECK-NEXT: bfi w0, w9, #24, #8
499+
; CHECK-NEXT: ret
482500

483501
%tmp = bitcast i32* %arg to i8*
484502
%tmp1 = getelementptr inbounds i8, i8* %tmp, i32 0
@@ -496,11 +514,12 @@ define i32 @zext_load_i32_by_i8_shl_16(i32* %arg) {
496514
; (i32) p[1] | ((i32) p[0] << 8)
497515
define i32 @zext_load_i32_by_i8_bswap(i32* %arg) {
498516
; CHECK-LABEL: zext_load_i32_by_i8_bswap:
499-
; CHECK: ldrb w8, [x0, #1]
500-
; CHECK-NEXT: ldrb w9, [x0]
501-
; CHECK-NEXT: bfi w8, w9, #8, #8
502-
; CHECK-NEXT: mov w0, w8
503-
; CHECK-NEXT: ret
517+
; CHECK: // %bb.0:
518+
; CHECK-NEXT: ldrb w8, [x0, #1]
519+
; CHECK-NEXT: ldrb w9, [x0]
520+
; CHECK-NEXT: bfi w8, w9, #8, #8
521+
; CHECK-NEXT: mov w0, w8
522+
; CHECK-NEXT: ret
504523

505524
%tmp = bitcast i32* %arg to i8*
506525
%tmp1 = getelementptr inbounds i8, i8* %tmp, i32 1
@@ -518,11 +537,12 @@ define i32 @zext_load_i32_by_i8_bswap(i32* %arg) {
518537
; ((i32) p[1] << 8) | ((i32) p[0] << 16)
519538
define i32 @zext_load_i32_by_i8_bswap_shl_8(i32* %arg) {
520539
; CHECK-LABEL: zext_load_i32_by_i8_bswap_shl_8:
521-
; CHECK: ldrb w8, [x0, #1]
522-
; CHECK-NEXT: ldrb w9, [x0]
523-
; CHECK-NEXT: lsl w0, w8, #8
524-
; CHECK-NEXT: bfi w0, w9, #16, #8
525-
; CHECK-NEXT: ret
540+
; CHECK: // %bb.0:
541+
; CHECK-NEXT: ldrb w8, [x0, #1]
542+
; CHECK-NEXT: ldrb w9, [x0]
543+
; CHECK-NEXT: lsl w0, w8, #8
544+
; CHECK-NEXT: bfi w0, w9, #16, #8
545+
; CHECK-NEXT: ret
526546

527547
%tmp = bitcast i32* %arg to i8*
528548
%tmp1 = getelementptr inbounds i8, i8* %tmp, i32 1
@@ -541,11 +561,12 @@ define i32 @zext_load_i32_by_i8_bswap_shl_8(i32* %arg) {
541561
; ((i32) p[1] << 16) | ((i32) p[0] << 24)
542562
define i32 @zext_load_i32_by_i8_bswap_shl_16(i32* %arg) {
543563
; CHECK-LABEL: zext_load_i32_by_i8_bswap_shl_16:
544-
; CHECK: ldrb w8, [x0, #1]
545-
; CHECK-NEXT: ldrb w9, [x0]
546-
; CHECK-NEXT: lsl w0, w8, #16
547-
; CHECK-NEXT: bfi w0, w9, #24, #8
548-
; CHECK-NEXT: ret
564+
; CHECK: // %bb.0:
565+
; CHECK-NEXT: ldrb w8, [x0, #1]
566+
; CHECK-NEXT: ldrb w9, [x0]
567+
; CHECK-NEXT: lsl w0, w8, #16
568+
; CHECK-NEXT: bfi w0, w9, #24, #8
569+
; CHECK-NEXT: ret
549570

550571
%tmp = bitcast i32* %arg to i8*
551572
%tmp1 = getelementptr inbounds i8, i8* %tmp, i32 1
@@ -568,10 +589,11 @@ define i32 @zext_load_i32_by_i8_bswap_shl_16(i32* %arg) {
568589
; because in the original DAG we don't have p[1] address available
569590
define i16 @load_i16_from_nonzero_offset(i8* %p) {
570591
; CHECK-LABEL: load_i16_from_nonzero_offset:
571-
; CHECK: ldrh w8, [x0]
572-
; CHECK-NEXT: ldrb w0, [x0, #2]
573-
; CHECK-NEXT: bfi w0, w8, #8, #24
574-
; CHECK-NEXT: ret
592+
; CHECK: // %bb.0:
593+
; CHECK-NEXT: ldrh w8, [x0]
594+
; CHECK-NEXT: ldrb w0, [x0, #2]
595+
; CHECK-NEXT: bfi w0, w8, #8, #24
596+
; CHECK-NEXT: ret
575597

576598
%p1.i16 = bitcast i8* %p to i16*
577599
%p2.i8 = getelementptr i8, i8* %p, i64 2

0 commit comments

Comments
 (0)