Revert r354244 "[DAGCombiner] Eliminate dead stores to stack."
[llvm-complete.git] / test / CodeGen / ARM / GlobalISel / thumb-select-load-store.mir
blobec64c8a2c1ed08bd35099c7f23884604c70b57ea
1 # RUN: llc -O0 -mtriple thumb-- -mattr=+v6t2 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
2 --- |
3   define void @test_s8() { ret void }
4   define void @test_s16() { ret void }
5   define void @test_s32() { ret void }
7   define void @test_gep() { ret void }
8 ...
9 ---
10 name:            test_s8
11 # CHECK-LABEL: name: test_s8
12 legalized:       true
13 regBankSelected: true
14 selected:        false
15 # CHECK: selected: true
16 registers:
17   - { id: 0, class: gprb }
18   - { id: 1, class: gprb }
19 body:             |
20   bb.0:
21     liveins: $r0
23     %0(p0) = COPY $r0
24     ; CHECK: %[[P:[0-9]+]]:gpr = COPY $r0
26     %1(s8) = G_LOAD %0(p0) :: (load 1)
27     ; CHECK: %[[V:[0-9]+]]:rgpr = t2LDRBi12 %[[P]], 0, 14, $noreg :: (load 1)
29     G_STORE %1(s8), %0(p0) :: (store 1)
30     ; CHECK: t2STRBi12 %[[V]], %[[P]], 0, 14, $noreg :: (store 1)
32     BX_RET 14, $noreg
33     ; CHECK: BX_RET 14, $noreg
34 ...
35 ---
36 name:            test_s16
37 # CHECK-LABEL: name: test_s16
38 legalized:       true
39 regBankSelected: true
40 selected:        false
41 # CHECK: selected: true
42 registers:
43   - { id: 0, class: gprb }
44   - { id: 1, class: gprb }
45 body:             |
46   bb.0:
47     liveins: $r0
49     %0(p0) = COPY $r0
50     ; CHECK: %[[P:[0-9]+]]:gpr = COPY $r0
52     %1(s16) = G_LOAD %0(p0) :: (load 2)
53     ; CHECK: %[[V:[0-9]+]]:rgpr = t2LDRHi12 %[[P]], 0, 14, $noreg :: (load 2)
55     G_STORE %1(s16), %0(p0) :: (store 2)
56     ; CHECK: t2STRHi12 %[[V]], %[[P]], 0, 14, $noreg :: (store 2)
58     BX_RET 14, $noreg
59     ; CHECK: BX_RET 14, $noreg
60 ...
61 ---
62 name:            test_s32
63 # CHECK-LABEL: name: test_s32
64 legalized:       true
65 regBankSelected: true
66 selected:        false
67 # CHECK: selected: true
68 registers:
69   - { id: 0, class: gprb }
70   - { id: 1, class: gprb }
71 body:             |
72   bb.0:
73     liveins: $r0
75     %0(p0) = COPY $r0
76     ; CHECK: %[[P:[0-9]+]]:gpr = COPY $r0
78     %1(s32) = G_LOAD %0(p0) :: (load 4)
79     ; CHECK: %[[V:[0-9]+]]:gpr = t2LDRi12 %[[P]], 0, 14, $noreg :: (load 4)
81     G_STORE %1(s32), %0(p0) :: (store 4)
82     ; CHECK: t2STRi12 %[[V]], %[[P]], 0, 14, $noreg :: (store 4)
84     BX_RET 14, $noreg
85     ; CHECK: BX_RET 14, $noreg
86 ...
87 ---
88 name:            test_gep
89 # CHECK-LABEL: name: test_gep
90 legalized:       true
91 regBankSelected: true
92 selected:        false
93 # CHECK: selected: true
94 registers:
95   - { id: 0, class: gprb }
96   - { id: 1, class: gprb }
97   - { id: 2, class: gprb }
98 body:             |
99   bb.0:
100     liveins: $r0, $r1
102     %0(p0) = COPY $r0
103     ; CHECK: [[PTR:%[0-9]+]]:gprnopc = COPY $r0
105     %1(s32) = COPY $r1
106     ; CHECK: [[OFF:%[0-9]+]]:rgpr = COPY $r1
108     %2(p0) = G_GEP %0, %1(s32)
109     ; CHECK: [[GEP:%[0-9]+]]:gprnopc = t2ADDrr [[PTR]], [[OFF]], 14, $noreg, $noreg
111     $r0 = COPY %2(p0)
112     ; CHECK: $r0 = COPY [[GEP]]
114     BX_RET 14, $noreg, implicit $r0
115     ; CHECK: BX_RET 14, $noreg, implicit $r0