@@ -94,4 +94,152 @@ entry:
94
94
ret void
95
95
}
96
96
97
+ @.str = private constant [22 x i8 ] c "preemption imbalance \00 " , align 1
98
+
99
+ define void @t3 () {
100
+ ; LA32-LABEL: t3:
101
+ ; LA32: # %bb.0: # %entry
102
+ ; LA32-NEXT: addi.w $sp, $sp, -64
103
+ ; LA32-NEXT: .cfi_def_cfa_offset 64
104
+ ; LA32-NEXT: pcalau12i $a0, %pc_hi20(.L.str)
105
+ ; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.L.str)
106
+ ; LA32-NEXT: ld.b $a1, $a0, 21
107
+ ; LA32-NEXT: ld.bu $a2, $a0, 20
108
+ ; LA32-NEXT: slli.w $a1, $a1, 8
109
+ ; LA32-NEXT: or $a1, $a1, $a2
110
+ ; LA32-NEXT: st.h $a1, $sp, 20
111
+ ; LA32-NEXT: ld.bu $a1, $a0, 17
112
+ ; LA32-NEXT: ld.bu $a2, $a0, 16
113
+ ; LA32-NEXT: ld.bu $a3, $a0, 18
114
+ ; LA32-NEXT: ld.bu $a4, $a0, 19
115
+ ; LA32-NEXT: slli.w $a1, $a1, 8
116
+ ; LA32-NEXT: or $a1, $a1, $a2
117
+ ; LA32-NEXT: slli.w $a2, $a3, 16
118
+ ; LA32-NEXT: slli.w $a3, $a4, 24
119
+ ; LA32-NEXT: or $a2, $a3, $a2
120
+ ; LA32-NEXT: or $a1, $a2, $a1
121
+ ; LA32-NEXT: st.w $a1, $sp, 16
122
+ ; LA32-NEXT: ld.bu $a1, $a0, 13
123
+ ; LA32-NEXT: ld.bu $a2, $a0, 12
124
+ ; LA32-NEXT: ld.bu $a3, $a0, 14
125
+ ; LA32-NEXT: ld.bu $a4, $a0, 15
126
+ ; LA32-NEXT: slli.w $a1, $a1, 8
127
+ ; LA32-NEXT: or $a1, $a1, $a2
128
+ ; LA32-NEXT: slli.w $a2, $a3, 16
129
+ ; LA32-NEXT: slli.w $a3, $a4, 24
130
+ ; LA32-NEXT: or $a2, $a3, $a2
131
+ ; LA32-NEXT: or $a1, $a2, $a1
132
+ ; LA32-NEXT: st.w $a1, $sp, 12
133
+ ; LA32-NEXT: ld.bu $a1, $a0, 9
134
+ ; LA32-NEXT: ld.bu $a2, $a0, 8
135
+ ; LA32-NEXT: ld.bu $a3, $a0, 10
136
+ ; LA32-NEXT: ld.bu $a4, $a0, 11
137
+ ; LA32-NEXT: slli.w $a1, $a1, 8
138
+ ; LA32-NEXT: or $a1, $a1, $a2
139
+ ; LA32-NEXT: slli.w $a2, $a3, 16
140
+ ; LA32-NEXT: slli.w $a3, $a4, 24
141
+ ; LA32-NEXT: or $a2, $a3, $a2
142
+ ; LA32-NEXT: or $a1, $a2, $a1
143
+ ; LA32-NEXT: st.w $a1, $sp, 8
144
+ ; LA32-NEXT: ld.bu $a1, $a0, 5
145
+ ; LA32-NEXT: ld.bu $a2, $a0, 4
146
+ ; LA32-NEXT: ld.bu $a3, $a0, 6
147
+ ; LA32-NEXT: ld.bu $a4, $a0, 7
148
+ ; LA32-NEXT: slli.w $a1, $a1, 8
149
+ ; LA32-NEXT: or $a1, $a1, $a2
150
+ ; LA32-NEXT: slli.w $a2, $a3, 16
151
+ ; LA32-NEXT: slli.w $a3, $a4, 24
152
+ ; LA32-NEXT: or $a2, $a3, $a2
153
+ ; LA32-NEXT: or $a1, $a2, $a1
154
+ ; LA32-NEXT: st.w $a1, $sp, 4
155
+ ; LA32-NEXT: ld.bu $a1, $a0, 1
156
+ ; LA32-NEXT: ld.bu $a2, $a0, 0
157
+ ; LA32-NEXT: ld.bu $a3, $a0, 2
158
+ ; LA32-NEXT: ld.bu $a0, $a0, 3
159
+ ; LA32-NEXT: slli.w $a1, $a1, 8
160
+ ; LA32-NEXT: or $a1, $a1, $a2
161
+ ; LA32-NEXT: slli.w $a2, $a3, 16
162
+ ; LA32-NEXT: slli.w $a0, $a0, 24
163
+ ; LA32-NEXT: or $a0, $a0, $a2
164
+ ; LA32-NEXT: or $a0, $a0, $a1
165
+ ; LA32-NEXT: st.w $a0, $sp, 0
166
+ ; LA32-NEXT: addi.w $sp, $sp, 64
167
+ ; LA32-NEXT: ret
168
+ ;
169
+ ; LA64-LABEL: t3:
170
+ ; LA64: # %bb.0: # %entry
171
+ ; LA64-NEXT: addi.d $sp, $sp, -64
172
+ ; LA64-NEXT: .cfi_def_cfa_offset 64
173
+ ; LA64-NEXT: pcalau12i $a0, %pc_hi20(.L.str)
174
+ ; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.L.str)
175
+ ; LA64-NEXT: ld.b $a1, $a0, 21
176
+ ; LA64-NEXT: ld.bu $a2, $a0, 20
177
+ ; LA64-NEXT: slli.d $a1, $a1, 8
178
+ ; LA64-NEXT: or $a1, $a1, $a2
179
+ ; LA64-NEXT: st.h $a1, $sp, 20
180
+ ; LA64-NEXT: ld.bu $a1, $a0, 17
181
+ ; LA64-NEXT: ld.bu $a2, $a0, 16
182
+ ; LA64-NEXT: ld.bu $a3, $a0, 18
183
+ ; LA64-NEXT: ld.b $a4, $a0, 19
184
+ ; LA64-NEXT: slli.d $a1, $a1, 8
185
+ ; LA64-NEXT: or $a1, $a1, $a2
186
+ ; LA64-NEXT: slli.d $a2, $a3, 16
187
+ ; LA64-NEXT: slli.d $a3, $a4, 24
188
+ ; LA64-NEXT: or $a2, $a3, $a2
189
+ ; LA64-NEXT: or $a1, $a2, $a1
190
+ ; LA64-NEXT: st.w $a1, $sp, 16
191
+ ; LA64-NEXT: ld.bu $a1, $a0, 9
192
+ ; LA64-NEXT: ld.bu $a2, $a0, 8
193
+ ; LA64-NEXT: ld.bu $a3, $a0, 10
194
+ ; LA64-NEXT: ld.bu $a4, $a0, 11
195
+ ; LA64-NEXT: slli.d $a1, $a1, 8
196
+ ; LA64-NEXT: or $a1, $a1, $a2
197
+ ; LA64-NEXT: slli.d $a2, $a3, 16
198
+ ; LA64-NEXT: slli.d $a3, $a4, 24
199
+ ; LA64-NEXT: or $a2, $a3, $a2
200
+ ; LA64-NEXT: or $a1, $a2, $a1
201
+ ; LA64-NEXT: ld.bu $a2, $a0, 13
202
+ ; LA64-NEXT: ld.bu $a3, $a0, 12
203
+ ; LA64-NEXT: ld.bu $a4, $a0, 14
204
+ ; LA64-NEXT: ld.bu $a5, $a0, 15
205
+ ; LA64-NEXT: slli.d $a2, $a2, 8
206
+ ; LA64-NEXT: or $a2, $a2, $a3
207
+ ; LA64-NEXT: slli.d $a3, $a4, 16
208
+ ; LA64-NEXT: slli.d $a4, $a5, 24
209
+ ; LA64-NEXT: or $a3, $a4, $a3
210
+ ; LA64-NEXT: or $a2, $a3, $a2
211
+ ; LA64-NEXT: slli.d $a2, $a2, 32
212
+ ; LA64-NEXT: or $a1, $a2, $a1
213
+ ; LA64-NEXT: st.d $a1, $sp, 8
214
+ ; LA64-NEXT: ld.bu $a1, $a0, 1
215
+ ; LA64-NEXT: ld.bu $a2, $a0, 0
216
+ ; LA64-NEXT: ld.bu $a3, $a0, 2
217
+ ; LA64-NEXT: ld.bu $a4, $a0, 3
218
+ ; LA64-NEXT: slli.d $a1, $a1, 8
219
+ ; LA64-NEXT: or $a1, $a1, $a2
220
+ ; LA64-NEXT: slli.d $a2, $a3, 16
221
+ ; LA64-NEXT: slli.d $a3, $a4, 24
222
+ ; LA64-NEXT: or $a2, $a3, $a2
223
+ ; LA64-NEXT: or $a1, $a2, $a1
224
+ ; LA64-NEXT: ld.bu $a2, $a0, 5
225
+ ; LA64-NEXT: ld.bu $a3, $a0, 4
226
+ ; LA64-NEXT: ld.bu $a4, $a0, 6
227
+ ; LA64-NEXT: ld.bu $a0, $a0, 7
228
+ ; LA64-NEXT: slli.d $a2, $a2, 8
229
+ ; LA64-NEXT: or $a2, $a2, $a3
230
+ ; LA64-NEXT: slli.d $a3, $a4, 16
231
+ ; LA64-NEXT: slli.d $a0, $a0, 24
232
+ ; LA64-NEXT: or $a0, $a0, $a3
233
+ ; LA64-NEXT: or $a0, $a0, $a2
234
+ ; LA64-NEXT: slli.d $a0, $a0, 32
235
+ ; LA64-NEXT: or $a0, $a0, $a1
236
+ ; LA64-NEXT: st.d $a0, $sp, 0
237
+ ; LA64-NEXT: addi.d $sp, $sp, 64
238
+ ; LA64-NEXT: ret
239
+ entry:
240
+ %msgbuf = alloca [64 x i8 ], align 1
241
+ call void @llvm.memcpy.p0.p0.i64 (ptr align 1 %msgbuf , ptr align 1 @.str , i64 22 , i1 false )
242
+ ret void
243
+ }
244
+
97
245
declare void @llvm.memcpy.p0.p0.i64 (ptr nocapture , ptr nocapture readonly , i64 , i1 )
0 commit comments