|
1 | 1 | ; RUN: llc -mtriple=m68k -global-isel -stop-after=irtranslator < %s | FileCheck %s
|
2 | 2 |
|
3 |
| -%struct.A = type { i8, float, i32, i32, i32 } |
4 |
| - |
5 | 3 | ; CHECK: name: noArgRetVoid
|
6 | 4 | ; CHECK: RTS
|
7 | 5 | define void @noArgRetVoid() {
|
8 | 6 | ret void
|
9 | 7 | }
|
10 |
| - |
11 |
| -define void @test_arg_lowering1(i8 %x, i8 %y) { |
12 |
| - ; CHECK-LABEL: name: test_arg_lowering1 |
13 |
| - ; CHECK: bb.1 (%ir-block.0): |
14 |
| - ; CHECK: [[G_F_I1:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
15 |
| - ; CHECK: [[G_LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I1]](p0) |
16 |
| - ; CHECK: [[G_TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[G_LOAD1]](s32) |
17 |
| - ; CHECK: [[G_F_I2:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
18 |
| - ; CHECK: [[G_LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I2]](p0) |
19 |
| - ; CHECK: [[G_TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[G_LOAD2]](s32) |
20 |
| - ; CHECK: RTS |
21 |
| - ret void |
22 |
| -} |
23 |
| - |
24 |
| -define void @test_arg_lowering2(i16 %x, i16 %y) { |
25 |
| - ; CHECK-LABEL: name: test_arg_lowering2 |
26 |
| - ; CHECK: bb.1 (%ir-block.0): |
27 |
| - ; CHECK: [[G_F_I1:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
28 |
| - ; CHECK: [[G_LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I1]](p0) |
29 |
| - ; CHECK: [[G_TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[G_LOAD1]](s32) |
30 |
| - ; CHECK: [[G_F_I2:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
31 |
| - ; CHECK: [[G_LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I2]](p0) |
32 |
| - ; CHECK: [[G_TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[G_LOAD2]](s32) |
33 |
| - ; CHECK: RTS |
34 |
| - ret void |
35 |
| -} |
36 |
| - |
37 |
| -define void @test_arg_lowering3(i32 %x, i32 %y) { |
38 |
| - ; CHECK-LABEL: name: test_arg_lowering3 |
39 |
| - ; CHECK: bb.1 (%ir-block.0): |
40 |
| - ; CHECK: [[G_F_I1:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
41 |
| - ; CHECK: {{%.*}} G_LOAD [[G_F_I1]](p0) |
42 |
| - ; CHECK: [[G_F_I2:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
43 |
| - ; CHECK: {{%.*}} G_LOAD [[G_F_I2]](p0) |
44 |
| - ; CHECK: RTS |
45 |
| - ret void |
46 |
| -} |
47 |
| - |
48 |
| -define void @test_arg_lowering_vector(<5 x i8> %x) { |
49 |
| - ; CHECK-LABEL: name: test_arg_lowering_vector |
50 |
| - ; CHECK: bb.1 (%ir-block.0): |
51 |
| - ; CHECK: [[G_F_I1:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
52 |
| - ; CHECK: [[G_LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I1]](p0) |
53 |
| - ; CHECK: [[G_F_I2:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
54 |
| - ; CHECK: [[G_LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I2]](p0) |
55 |
| - ; CHECK: [[G_F_I3:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
56 |
| - ; CHECK: [[G_LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I3]](p0) |
57 |
| - ; CHECK: [[G_F_I4:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
58 |
| - ; CHECK: [[G_LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I4]](p0) |
59 |
| - ; CHECK: [[G_F_I5:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
60 |
| - ; CHECK: [[G_LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I5]](p0) |
61 |
| - ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<5 x s32>) = G_BUILD_VECTOR [[G_LOAD1]](s32), [[G_LOAD2]](s32), [[G_LOAD3]](s32), [[G_LOAD4]](s32), [[G_LOAD5]](s32) |
62 |
| - ; CHECK: [[G_TRUNC:%[0-9]+]]:_(<5 x s8>) = G_TRUNC [[BUILD_VECTOR]](<5 x s32>) |
63 |
| - ; CHECK: RTS |
64 |
| - ret void |
65 |
| -} |
66 |
| - |
67 |
| -define void @test_arg_lowering_array([5 x i8] %x) { |
68 |
| - ; CHECK-LABEL: name: test_arg_lowering_array |
69 |
| - ; CHECK: bb.1 (%ir-block.0): |
70 |
| - ; CHECK: [[G_F_I1:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
71 |
| - ; CHECK: [[G_LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I1]](p0) |
72 |
| - ; CHECK: [[G_TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[G_LOAD1]](s32) |
73 |
| - ; CHECK: [[G_F_I2:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
74 |
| - ; CHECK: [[G_LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I2]](p0) |
75 |
| - ; CHECK: [[G_TRUNC2:%[0-9]+]]:_(s8) = G_TRUNC [[G_LOAD2]](s32) |
76 |
| - ; CHECK: [[G_F_I3:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
77 |
| - ; CHECK: [[G_LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I3]](p0) |
78 |
| - ; CHECK: [[G_TRUNC3:%[0-9]+]]:_(s8) = G_TRUNC [[G_LOAD3]](s32) |
79 |
| - ; CHECK: [[G_F_I4:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
80 |
| - ; CHECK: [[G_LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I4]](p0) |
81 |
| - ; CHECK: [[G_TRUNC4:%[0-9]+]]:_(s8) = G_TRUNC [[G_LOAD4]](s32) |
82 |
| - ; CHECK: [[G_F_I5:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
83 |
| - ; CHECK: [[G_LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I5]](p0) |
84 |
| - ; CHECK: [[G_TRUNC5:%[0-9]+]]:_(s8) = G_TRUNC [[G_LOAD5]](s32) |
85 |
| - ; CHECK: RTS |
86 |
| - ret void |
87 |
| -} |
88 |
| - |
89 |
| -define void @test_arg_lowering_double(double %x) { |
90 |
| - ; CHECK-LABEL: name: test_arg_lowering_double |
91 |
| - ; CHECK: bb.1 (%ir-block.0): |
92 |
| - ; CHECK: [[G_F_I1:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
93 |
| - ; CHECK: [[G_LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I1]](p0) |
94 |
| - ; CHECK: [[G_F_I2:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
95 |
| - ; CHECK: [[G_LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I2]](p0) |
96 |
| - ; CHECK: [[G_MERGE_VAL:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[G_LOAD1]](s32), [[G_LOAD2]](s32) |
97 |
| - ; CHECK: RTS |
98 |
| - ret void |
99 |
| -} |
100 |
| - |
101 |
| -define void @test_arg_lowering_float(float %x) { |
102 |
| - ; CHECK-LABEL: name: test_arg_lowering_float |
103 |
| - ; CHECK: bb.1 (%ir-block.0): |
104 |
| - ; CHECK: [[G_F_I1:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
105 |
| - ; CHECK: [[G_LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I1]](p0) |
106 |
| - ; CHECK: RTS |
107 |
| - ret void |
108 |
| -} |
109 |
| - |
110 |
| -define void @test_arg_lowering_multiple(i1 %a, i8 %b, i16 %c, i32 %d, i64 %e, i128 %f){ |
111 |
| - ; CHECK-LABEL: name: test_arg_lowering_multiple |
112 |
| - ; CHECK: bb.1 (%ir-block.0): |
113 |
| - ; CHECK: [[G_F_I1:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
114 |
| - ; CHECK: [[G_LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I1]](p0) |
115 |
| - ; CHECK: [[G_TRUNC1:%[0-9]+]]:_(s1) = G_TRUNC [[G_LOAD1]](s32) |
116 |
| - ; CHECK: [[G_F_I2:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
117 |
| - ; CHECK: [[G_LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I2]](p0) |
118 |
| - ; CHECK: [[G_TRUNC2:%[0-9]+]]:_(s8) = G_TRUNC [[G_LOAD2]](s32) |
119 |
| - ; CHECK: [[G_F_I3:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
120 |
| - ; CHECK: [[G_LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I3]](p0) |
121 |
| - ; CHECK: [[G_TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[G_LOAD3]](s32) |
122 |
| - ; CHECK: [[G_F_I4:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
123 |
| - ; CHECK: [[G_LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I4]](p0) |
124 |
| - ; CHECK: [[G_F_I5:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
125 |
| - ; CHECK: [[G_LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I5]](p0) |
126 |
| - ; CHECK: [[G_F_I6:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
127 |
| - ; CHECK: [[G_LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I6]](p0) |
128 |
| - ; CHECK: [[G_MERGE_VAL:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[G_LOAD5]](s32), [[G_LOAD6]](s32) |
129 |
| - ; CHECK: [[G_F_I7:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
130 |
| - ; CHECK: [[G_LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I7]](p0) |
131 |
| - ; CHECK: [[G_F_I8:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
132 |
| - ; CHECK: [[G_LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I8]](p0) |
133 |
| - ; CHECK: [[G_F_I9:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
134 |
| - ; CHECK: [[G_LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I9]](p0) |
135 |
| - ; CHECK: [[G_F_I10:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
136 |
| - ; CHECK: [[G_LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I10]](p0) |
137 |
| - ; CHECK: [[G_MERGE_VAL:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[G_LOAD7]](s32), [[G_LOAD8]](s32), [[G_LOAD9]](s32), [[G_LOAD10]](s32) |
138 |
| - ; CHECK: RTS |
139 |
| - ret void |
140 |
| -} |
141 |
| - |
142 |
| -define void @test_arg_lowering_ptr(i32* %x) { |
143 |
| - ; CHECK-LABEL: name: test_arg_lowering_ptr |
144 |
| - ; CHECK: bb.1 (%ir-block.0): |
145 |
| - ; CHECK: [[G_F_I1:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
146 |
| - ; CHECK: [[G_LOAD1:%[0-9]+]]:_(p0) = G_LOAD [[G_F_I1]](p0) |
147 |
| - ; CHECK: RTS |
148 |
| - ret void |
149 |
| -} |
150 |
| - |
151 |
| -define void @test_arg_lowering_float_ptr(float* %x) { |
152 |
| - ; CHECK-LABEL: name: test_arg_lowering_float_ptr |
153 |
| - ; CHECK: bb.1 (%ir-block.0): |
154 |
| - ; CHECK: [[G_F_I1:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
155 |
| - ; CHECK: [[G_LOAD1:%[0-9]+]]:_(p0) = G_LOAD [[G_F_I1]](p0) |
156 |
| - ; CHECK: RTS |
157 |
| - ret void |
158 |
| -} |
159 |
| - |
160 |
| -define void @test_arg_lowering_struct(%struct.A %a) #0 { |
161 |
| - ; CHECK-LABEL: name: test_arg_lowering_struct |
162 |
| - ; CHECK: bb.1 (%ir-block.0): |
163 |
| - ; CHECK: [[G_F_I1:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
164 |
| - ; CHECK: [[G_LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I1]](p0) |
165 |
| - ; CHECK: [[G_TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[G_LOAD1]](s32) |
166 |
| - ; CHECK: [[G_F_I2:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
167 |
| - ; CHECK: [[G_LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I2]](p0) |
168 |
| - ; CHECK: [[G_F_I3:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
169 |
| - ; CHECK: [[G_LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I3]](p0) |
170 |
| - ; CHECK: [[G_F_I4:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
171 |
| - ; CHECK: [[G_LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I4]](p0) |
172 |
| - ; CHECK: [[G_F_I5:%[0-9]+]]:_(p0) = G_FRAME_INDEX |
173 |
| - ; CHECK: [[G_LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[G_F_I5]](p0) |
174 |
| - ; CHECK: RTS |
175 |
| - ret void |
176 |
| -} |
0 commit comments