@@ -993,24 +993,24 @@ define i8 @atomic_load_relaxed_8(ptr %p, i32 %off32) #0 {
993993; CHECK-NOLSE-O1: ; %bb.0:
994994; CHECK-NOLSE-O1-NEXT: ldrb w8, [x0, #4095]
995995; CHECK-NOLSE-O1-NEXT: ldrb w9, [x0, w1, sxtw]
996- ; CHECK-NOLSE-O1-NEXT: add x11, x0, #291, lsl #12 ; =1191936
997996; CHECK-NOLSE-O1-NEXT: ldurb w10, [x0, #-256]
998- ; CHECK-NOLSE-O1-NEXT: add w8, w8, w9
999- ; CHECK-NOLSE-O1-NEXT: ldrb w9, [x11]
1000- ; CHECK-NOLSE-O1-NEXT: add w8, w8, w10
1001- ; CHECK-NOLSE-O1-NEXT: add w0, w8, w9
997+ ; CHECK-NOLSE-O1-NEXT: add w8, w9, w8, uxtb
998+ ; CHECK-NOLSE-O1-NEXT: add x9, x0, #291, lsl #12 ; =1191936
999+ ; CHECK-NOLSE-O1-NEXT: ldrb w9, [x9]
1000+ ; CHECK-NOLSE-O1-NEXT: add w8, w8, w10, uxtb
1001+ ; CHECK-NOLSE-O1-NEXT: add w0, w8, w9, uxtb
10021002; CHECK-NOLSE-O1-NEXT: ret
10031003;
10041004; CHECK-OUTLINE-O1-LABEL: atomic_load_relaxed_8:
10051005; CHECK-OUTLINE-O1: ; %bb.0:
10061006; CHECK-OUTLINE-O1-NEXT: ldrb w8, [x0, #4095]
10071007; CHECK-OUTLINE-O1-NEXT: ldrb w9, [x0, w1, sxtw]
1008- ; CHECK-OUTLINE-O1-NEXT: add x11, x0, #291, lsl #12 ; =1191936
10091008; CHECK-OUTLINE-O1-NEXT: ldurb w10, [x0, #-256]
1010- ; CHECK-OUTLINE-O1-NEXT: add w8, w8, w9
1011- ; CHECK-OUTLINE-O1-NEXT: ldrb w9, [x11]
1012- ; CHECK-OUTLINE-O1-NEXT: add w8, w8, w10
1013- ; CHECK-OUTLINE-O1-NEXT: add w0, w8, w9
1009+ ; CHECK-OUTLINE-O1-NEXT: add w8, w9, w8, uxtb
1010+ ; CHECK-OUTLINE-O1-NEXT: add x9, x0, #291, lsl #12 ; =1191936
1011+ ; CHECK-OUTLINE-O1-NEXT: ldrb w9, [x9]
1012+ ; CHECK-OUTLINE-O1-NEXT: add w8, w8, w10, uxtb
1013+ ; CHECK-OUTLINE-O1-NEXT: add w0, w8, w9, uxtb
10141014; CHECK-OUTLINE-O1-NEXT: ret
10151015;
10161016; CHECK-NOLSE-O0-LABEL: atomic_load_relaxed_8:
@@ -1045,12 +1045,12 @@ define i8 @atomic_load_relaxed_8(ptr %p, i32 %off32) #0 {
10451045; CHECK-LSE-O1: ; %bb.0:
10461046; CHECK-LSE-O1-NEXT: ldrb w8, [x0, #4095]
10471047; CHECK-LSE-O1-NEXT: ldrb w9, [x0, w1, sxtw]
1048- ; CHECK-LSE-O1-NEXT: ldurb w10, [x0, #-256]
1049- ; CHECK-LSE-O1-NEXT: add w8, w8, w10
1050- ; CHECK-LSE-O1-NEXT: add w8, w8, w9
1048+ ; CHECK-LSE-O1-NEXT: add w8, w9, w8, uxtb
1049+ ; CHECK-LSE-O1-NEXT: ldurb w9, [x0, #-256]
1050+ ; CHECK-LSE-O1-NEXT: add w8, w8, w9, uxtb
10511051; CHECK-LSE-O1-NEXT: add x9, x0, #291, lsl #12 ; =1191936
10521052; CHECK-LSE-O1-NEXT: ldrb w9, [x9]
1053- ; CHECK-LSE-O1-NEXT: add w0, w8, w9
1053+ ; CHECK-LSE-O1-NEXT: add w0, w8, w9, uxtb
10541054; CHECK-LSE-O1-NEXT: ret
10551055;
10561056; CHECK-LSE-O0-LABEL: atomic_load_relaxed_8:
@@ -1089,24 +1089,24 @@ define i16 @atomic_load_relaxed_16(ptr %p, i32 %off32) #0 {
10891089; CHECK-NOLSE-O1: ; %bb.0:
10901090; CHECK-NOLSE-O1-NEXT: ldrh w8, [x0, #8190]
10911091; CHECK-NOLSE-O1-NEXT: ldrh w9, [x0, w1, sxtw #1]
1092- ; CHECK-NOLSE-O1-NEXT: add x11, x0, #291, lsl #12 ; =1191936
10931092; CHECK-NOLSE-O1-NEXT: ldurh w10, [x0, #-256]
1094- ; CHECK-NOLSE-O1-NEXT: add w8, w8, w9
1095- ; CHECK-NOLSE-O1-NEXT: ldrh w9, [x11]
1096- ; CHECK-NOLSE-O1-NEXT: add w8, w8, w10
1097- ; CHECK-NOLSE-O1-NEXT: add w0, w8, w9
1093+ ; CHECK-NOLSE-O1-NEXT: add w8, w9, w8, uxth
1094+ ; CHECK-NOLSE-O1-NEXT: add x9, x0, #291, lsl #12 ; =1191936
1095+ ; CHECK-NOLSE-O1-NEXT: ldrh w9, [x9]
1096+ ; CHECK-NOLSE-O1-NEXT: add w8, w8, w10, uxth
1097+ ; CHECK-NOLSE-O1-NEXT: add w0, w8, w9, uxth
10981098; CHECK-NOLSE-O1-NEXT: ret
10991099;
11001100; CHECK-OUTLINE-O1-LABEL: atomic_load_relaxed_16:
11011101; CHECK-OUTLINE-O1: ; %bb.0:
11021102; CHECK-OUTLINE-O1-NEXT: ldrh w8, [x0, #8190]
11031103; CHECK-OUTLINE-O1-NEXT: ldrh w9, [x0, w1, sxtw #1]
1104- ; CHECK-OUTLINE-O1-NEXT: add x11, x0, #291, lsl #12 ; =1191936
11051104; CHECK-OUTLINE-O1-NEXT: ldurh w10, [x0, #-256]
1106- ; CHECK-OUTLINE-O1-NEXT: add w8, w8, w9
1107- ; CHECK-OUTLINE-O1-NEXT: ldrh w9, [x11]
1108- ; CHECK-OUTLINE-O1-NEXT: add w8, w8, w10
1109- ; CHECK-OUTLINE-O1-NEXT: add w0, w8, w9
1105+ ; CHECK-OUTLINE-O1-NEXT: add w8, w9, w8, uxth
1106+ ; CHECK-OUTLINE-O1-NEXT: add x9, x0, #291, lsl #12 ; =1191936
1107+ ; CHECK-OUTLINE-O1-NEXT: ldrh w9, [x9]
1108+ ; CHECK-OUTLINE-O1-NEXT: add w8, w8, w10, uxth
1109+ ; CHECK-OUTLINE-O1-NEXT: add w0, w8, w9, uxth
11101110; CHECK-OUTLINE-O1-NEXT: ret
11111111;
11121112; CHECK-NOLSE-O0-LABEL: atomic_load_relaxed_16:
@@ -1141,12 +1141,12 @@ define i16 @atomic_load_relaxed_16(ptr %p, i32 %off32) #0 {
11411141; CHECK-LSE-O1: ; %bb.0:
11421142; CHECK-LSE-O1-NEXT: ldrh w8, [x0, #8190]
11431143; CHECK-LSE-O1-NEXT: ldrh w9, [x0, w1, sxtw #1]
1144- ; CHECK-LSE-O1-NEXT: ldurh w10, [x0, #-256]
1145- ; CHECK-LSE-O1-NEXT: add w8, w8, w10
1146- ; CHECK-LSE-O1-NEXT: add w8, w8, w9
1144+ ; CHECK-LSE-O1-NEXT: add w8, w9, w8, uxth
1145+ ; CHECK-LSE-O1-NEXT: ldurh w9, [x0, #-256]
1146+ ; CHECK-LSE-O1-NEXT: add w8, w8, w9, uxth
11471147; CHECK-LSE-O1-NEXT: add x9, x0, #291, lsl #12 ; =1191936
11481148; CHECK-LSE-O1-NEXT: ldrh w9, [x9]
1149- ; CHECK-LSE-O1-NEXT: add w0, w8, w9
1149+ ; CHECK-LSE-O1-NEXT: add w0, w8, w9, uxth
11501150; CHECK-LSE-O1-NEXT: ret
11511151;
11521152; CHECK-LSE-O0-LABEL: atomic_load_relaxed_16:
0 commit comments