Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / Mips / GlobalISel / instruction-select / load_4_unaligned_r6.mir
blob26d397410ff9e2666a2f2a59fba0ad14fffe5c34
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=instruction-select -mcpu=mips32r6 -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=MIPS32R6
3 --- |
5   @float_align1 = common global float 0.000000e+00, align 1
6   @float_align8 = common global float 0.000000e+00, align 8
7   @i32_align2 = common global i32 0, align 2
9   define float @load_float_align1() {
10   entry:
11     %0 = load float, ptr @float_align1, align 1
12     ret float %0
13   }
15   define float @load_float_align8() {
16   entry:
17     %0 = load float, ptr @float_align8, align 8
18     ret float %0
19   }
21   define i32 @load_i32_align2() {
22   entry:
23     %0 = load i32, ptr @i32_align2, align 2
24     ret i32 %0
25   }
27 ...
28 ---
29 name:            load_float_align1
30 alignment:       4
31 legalized:       true
32 regBankSelected: true
33 tracksRegLiveness: true
34 body:             |
35   bb.1.entry:
37     ; MIPS32R6-LABEL: name: load_float_align1
38     ; MIPS32R6: [[LUi:%[0-9]+]]:gpr32 = LUi target-flags(mips-abs-hi) @float_align1
39     ; MIPS32R6: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu [[LUi]], target-flags(mips-abs-lo) @float_align1
40     ; MIPS32R6: [[LWC1_:%[0-9]+]]:fgr32 = LWC1 [[ADDiu]], 0 :: (dereferenceable load (s32) from @float_align1, align 1)
41     ; MIPS32R6: $f0 = COPY [[LWC1_]]
42     ; MIPS32R6: RetRA implicit $f0
43     %1:gprb(p0) = G_GLOBAL_VALUE @float_align1
44     %0:fprb(s32) = G_LOAD %1(p0) :: (dereferenceable load (s32) from @float_align1, align 1)
45     $f0 = COPY %0(s32)
46     RetRA implicit $f0
48 ...
49 ---
50 name:            load_float_align8
51 alignment:       4
52 legalized:       true
53 regBankSelected: true
54 tracksRegLiveness: true
55 body:             |
56   bb.1.entry:
58     ; MIPS32R6-LABEL: name: load_float_align8
59     ; MIPS32R6: [[LUi:%[0-9]+]]:gpr32 = LUi target-flags(mips-abs-hi) @float_align8
60     ; MIPS32R6: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu [[LUi]], target-flags(mips-abs-lo) @float_align8
61     ; MIPS32R6: [[LWC1_:%[0-9]+]]:fgr32 = LWC1 [[ADDiu]], 0 :: (dereferenceable load (s32) from @float_align8, align 8)
62     ; MIPS32R6: $f0 = COPY [[LWC1_]]
63     ; MIPS32R6: RetRA implicit $f0
64     %1:gprb(p0) = G_GLOBAL_VALUE @float_align8
65     %0:fprb(s32) = G_LOAD %1(p0) :: (dereferenceable load (s32) from @float_align8, align 8)
66     $f0 = COPY %0(s32)
67     RetRA implicit $f0
69 ...
70 ---
71 name:            load_i32_align2
72 alignment:       4
73 legalized:       true
74 regBankSelected: true
75 tracksRegLiveness: true
76 body:             |
77   bb.1.entry:
79     ; MIPS32R6-LABEL: name: load_i32_align2
80     ; MIPS32R6: [[LUi:%[0-9]+]]:gpr32 = LUi target-flags(mips-abs-hi) @i32_align2
81     ; MIPS32R6: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu [[LUi]], target-flags(mips-abs-lo) @i32_align2
82     ; MIPS32R6: [[LW:%[0-9]+]]:gpr32 = LW [[ADDiu]], 0 :: (dereferenceable load (s32) from @i32_align2, align 2)
83     ; MIPS32R6: $v0 = COPY [[LW]]
84     ; MIPS32R6: RetRA implicit $v0
85     %1:gprb(p0) = G_GLOBAL_VALUE @i32_align2
86     %0:gprb(s32) = G_LOAD %1(p0) :: (dereferenceable load (s32) from @i32_align2, align 2)
87     $v0 = COPY %0(s32)
88     RetRA implicit $v0
90 ...