@@ -112,8 +112,7 @@ entry:
112112define double @load_u64_from_u8_off1 (ptr %n ){
113113; CHECK-LABEL: load_u64_from_u8_off1:
114114; CHECK: // %bb.0: // %entry
115- ; CHECK-NEXT: ldrb w8, [x0, #1]
116- ; CHECK-NEXT: fmov d0, x8
115+ ; CHECK-NEXT: ldr b0, [x0, #1]
117116; CHECK-NEXT: ret
118117entry:
119118 %p = getelementptr i8 , ptr %n , i64 1
@@ -140,8 +139,7 @@ entry:
140139define float @load_u32_from_u8_off1 (ptr %n ){
141140; CHECK-LABEL: load_u32_from_u8_off1:
142141; CHECK: // %bb.0: // %entry
143- ; CHECK-NEXT: ldrb w8, [x0, #1]
144- ; CHECK-NEXT: fmov s0, w8
142+ ; CHECK-NEXT: ldr b0, [x0, #1]
145143; CHECK-NEXT: ret
146144entry:
147145 %p = getelementptr i8 , ptr %n , i64 1
@@ -154,8 +152,7 @@ entry:
154152define half @load_u16_from_u8_off1 (ptr %n ){
155153; CHECK-LABEL: load_u16_from_u8_off1:
156154; CHECK: // %bb.0: // %entry
157- ; CHECK-NEXT: ldrb w8, [x0, #1]
158- ; CHECK-NEXT: fmov s0, w8
155+ ; CHECK-NEXT: ldr b0, [x0, #1]
159156; CHECK-NEXT: // kill: def $h0 killed $h0 killed $s0
160157; CHECK-NEXT: ret
161158entry:
@@ -185,8 +182,7 @@ entry:
185182define double @load_u64_from_u16_off2 (ptr %n ){
186183; CHECK-LABEL: load_u64_from_u16_off2:
187184; CHECK: // %bb.0: // %entry
188- ; CHECK-NEXT: ldrh w8, [x0, #2]
189- ; CHECK-NEXT: fmov d0, x8
185+ ; CHECK-NEXT: ldr h0, [x0, #2]
190186; CHECK-NEXT: ret
191187entry:
192188 %p = getelementptr i8 , ptr %n , i64 2
@@ -199,8 +195,7 @@ entry:
199195define double @load_u64_from_u8_off2 (ptr %n ){
200196; CHECK-LABEL: load_u64_from_u8_off2:
201197; CHECK: // %bb.0: // %entry
202- ; CHECK-NEXT: ldrb w8, [x0, #2]
203- ; CHECK-NEXT: fmov d0, x8
198+ ; CHECK-NEXT: ldr b0, [x0, #2]
204199; CHECK-NEXT: ret
205200entry:
206201 %p = getelementptr i8 , ptr %n , i64 2
@@ -226,7 +221,7 @@ entry:
226221define float @load_u32_from_u8_off2 (ptr %n ){
227222; CHECK-LABEL: load_u32_from_u8_off2:
228223; CHECK: // %bb.0: // %entry
229- ; CHECK-NEXT: ldr b0, [x0, #1 ]
224+ ; CHECK-NEXT: ldr b0, [x0, #2 ]
230225; CHECK-NEXT: ret
231226entry:
232227 %p = getelementptr i8 , ptr %n , i64 2
@@ -239,7 +234,7 @@ entry:
239234define half @load_u16_from_u8_off2 (ptr %n ){
240235; CHECK-LABEL: load_u16_from_u8_off2:
241236; CHECK: // %bb.0: // %entry
242- ; CHECK-NEXT: ldr b0, [x0, #1 ]
237+ ; CHECK-NEXT: ldr b0, [x0, #2 ]
243238; CHECK-NEXT: // kill: def $h0 killed $h0 killed $s0
244239; CHECK-NEXT: ret
245240entry:
@@ -283,8 +278,7 @@ entry:
283278define double @load_u64_from_u8_off255 (ptr %n ){
284279; CHECK-LABEL: load_u64_from_u8_off255:
285280; CHECK: // %bb.0: // %entry
286- ; CHECK-NEXT: ldrb w8, [x0, #255]
287- ; CHECK-NEXT: fmov d0, x8
281+ ; CHECK-NEXT: ldr b0, [x0, #255]
288282; CHECK-NEXT: ret
289283entry:
290284 %p = getelementptr i8 , ptr %n , i64 255
@@ -311,8 +305,7 @@ entry:
311305define float @load_u32_from_u8_off255 (ptr %n ){
312306; CHECK-LABEL: load_u32_from_u8_off255:
313307; CHECK: // %bb.0: // %entry
314- ; CHECK-NEXT: ldrb w8, [x0, #255]
315- ; CHECK-NEXT: fmov s0, w8
308+ ; CHECK-NEXT: ldr b0, [x0, #255]
316309; CHECK-NEXT: ret
317310entry:
318311 %p = getelementptr i8 , ptr %n , i64 255
@@ -325,8 +318,7 @@ entry:
325318define half @load_u16_from_u8_off255 (ptr %n ){
326319; CHECK-LABEL: load_u16_from_u8_off255:
327320; CHECK: // %bb.0: // %entry
328- ; CHECK-NEXT: ldrb w8, [x0, #255]
329- ; CHECK-NEXT: fmov s0, w8
321+ ; CHECK-NEXT: ldr b0, [x0, #255]
330322; CHECK-NEXT: // kill: def $h0 killed $h0 killed $s0
331323; CHECK-NEXT: ret
332324entry:
@@ -354,7 +346,7 @@ entry:
354346define double @load_u64_from_u16_off256 (ptr %n ){
355347; CHECK-LABEL: load_u64_from_u16_off256:
356348; CHECK: // %bb.0: // %entry
357- ; CHECK-NEXT: ldr h0, [x0, #128 ]
349+ ; CHECK-NEXT: ldr h0, [x0, #256 ]
358350; CHECK-NEXT: ret
359351entry:
360352 %p = getelementptr i8 , ptr %n , i64 256
@@ -367,7 +359,7 @@ entry:
367359define double @load_u64_from_u8_off256 (ptr %n ){
368360; CHECK-LABEL: load_u64_from_u8_off256:
369361; CHECK: // %bb.0: // %entry
370- ; CHECK-NEXT: ldr b0, [x0, #64 ]
362+ ; CHECK-NEXT: ldr b0, [x0, #256 ]
371363; CHECK-NEXT: ret
372364entry:
373365 %p = getelementptr i8 , ptr %n , i64 256
@@ -393,7 +385,7 @@ entry:
393385define float @load_u32_from_u8_off256 (ptr %n ){
394386; CHECK-LABEL: load_u32_from_u8_off256:
395387; CHECK: // %bb.0: // %entry
396- ; CHECK-NEXT: ldr b0, [x0, #128 ]
388+ ; CHECK-NEXT: ldr b0, [x0, #256 ]
397389; CHECK-NEXT: ret
398390entry:
399391 %p = getelementptr i8 , ptr %n , i64 256
@@ -406,7 +398,7 @@ entry:
406398define half @load_u16_from_u8_off256 (ptr %n ){
407399; CHECK-LABEL: load_u16_from_u8_off256:
408400; CHECK: // %bb.0: // %entry
409- ; CHECK-NEXT: ldr b0, [x0, #128 ]
401+ ; CHECK-NEXT: ldr b0, [x0, #256 ]
410402; CHECK-NEXT: // kill: def $h0 killed $h0 killed $s0
411403; CHECK-NEXT: ret
412404entry:
@@ -435,8 +427,7 @@ entry:
435427define double @load_u64_from_u16_offn (ptr %n ){
436428; CHECK-LABEL: load_u64_from_u16_offn:
437429; CHECK: // %bb.0: // %entry
438- ; CHECK-NEXT: mov w8, #8190 // =0x1ffe
439- ; CHECK-NEXT: ldr h0, [x0, x8]
430+ ; CHECK-NEXT: ldr h0, [x0, #8190]
440431; CHECK-NEXT: ret
441432entry:
442433 %p = getelementptr i8 , ptr %n , i64 8190
@@ -517,7 +508,8 @@ entry:
517508define double @load_u64_from_u16_offnp1 (ptr %n ){
518509; CHECK-LABEL: load_u64_from_u16_offnp1:
519510; CHECK: // %bb.0: // %entry
520- ; CHECK-NEXT: ldr h0, [x0, #4096]
511+ ; CHECK-NEXT: add x8, x0, #2, lsl #12 // =8192
512+ ; CHECK-NEXT: ldr h0, [x8]
521513; CHECK-NEXT: ret
522514entry:
523515 %p = getelementptr i8 , ptr %n , i64 8192
@@ -530,7 +522,8 @@ entry:
530522define double @load_u64_from_u8_offnp1 (ptr %n ){
531523; CHECK-LABEL: load_u64_from_u8_offnp1:
532524; CHECK: // %bb.0: // %entry
533- ; CHECK-NEXT: ldr b0, [x0, #1024]
525+ ; CHECK-NEXT: add x8, x0, #1, lsl #12 // =4096
526+ ; CHECK-NEXT: ldr b0, [x8]
534527; CHECK-NEXT: ret
535528entry:
536529 %p = getelementptr i8 , ptr %n , i64 4096
@@ -557,7 +550,8 @@ entry:
557550define float @load_u32_from_u8_offnp1 (ptr %n ){
558551; CHECK-LABEL: load_u32_from_u8_offnp1:
559552; CHECK: // %bb.0: // %entry
560- ; CHECK-NEXT: ldr b0, [x0, #2048]
553+ ; CHECK-NEXT: add x8, x0, #1, lsl #12 // =4096
554+ ; CHECK-NEXT: ldr b0, [x8]
561555; CHECK-NEXT: ret
562556entry:
563557 %p = getelementptr i8 , ptr %n , i64 4096
@@ -570,7 +564,8 @@ entry:
570564define half @load_u16_from_u8_offnp1 (ptr %n ){
571565; CHECK-LABEL: load_u16_from_u8_offnp1:
572566; CHECK: // %bb.0: // %entry
573- ; CHECK-NEXT: ldr b0, [x0, #2048]
567+ ; CHECK-NEXT: add x8, x0, #1, lsl #12 // =4096
568+ ; CHECK-NEXT: ldr b0, [x8]
574569; CHECK-NEXT: // kill: def $h0 killed $h0 killed $s0
575570; CHECK-NEXT: ret
576571entry:
0 commit comments