@@ -993,24 +993,24 @@ define i8 @atomic_load_relaxed_8(ptr %p, i32 %off32) #0 {
993
993
; CHECK-NOLSE-O1: ; %bb.0:
994
994
; CHECK-NOLSE-O1-NEXT: ldrb w8, [x0, #4095]
995
995
; CHECK-NOLSE-O1-NEXT: ldrb w9, [x0, w1, sxtw]
996
- ; CHECK-NOLSE-O1-NEXT: add x11, x0, #291, lsl #12 ; =1191936
997
996
; 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
1002
1002
; CHECK-NOLSE-O1-NEXT: ret
1003
1003
;
1004
1004
; CHECK-OUTLINE-O1-LABEL: atomic_load_relaxed_8:
1005
1005
; CHECK-OUTLINE-O1: ; %bb.0:
1006
1006
; CHECK-OUTLINE-O1-NEXT: ldrb w8, [x0, #4095]
1007
1007
; CHECK-OUTLINE-O1-NEXT: ldrb w9, [x0, w1, sxtw]
1008
- ; CHECK-OUTLINE-O1-NEXT: add x11, x0, #291, lsl #12 ; =1191936
1009
1008
; 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
1014
1014
; CHECK-OUTLINE-O1-NEXT: ret
1015
1015
;
1016
1016
; CHECK-NOLSE-O0-LABEL: atomic_load_relaxed_8:
@@ -1045,12 +1045,12 @@ define i8 @atomic_load_relaxed_8(ptr %p, i32 %off32) #0 {
1045
1045
; CHECK-LSE-O1: ; %bb.0:
1046
1046
; CHECK-LSE-O1-NEXT: ldrb w8, [x0, #4095]
1047
1047
; 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
1051
1051
; CHECK-LSE-O1-NEXT: add x9, x0, #291, lsl #12 ; =1191936
1052
1052
; 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
1054
1054
; CHECK-LSE-O1-NEXT: ret
1055
1055
;
1056
1056
; CHECK-LSE-O0-LABEL: atomic_load_relaxed_8:
@@ -1089,24 +1089,24 @@ define i16 @atomic_load_relaxed_16(ptr %p, i32 %off32) #0 {
1089
1089
; CHECK-NOLSE-O1: ; %bb.0:
1090
1090
; CHECK-NOLSE-O1-NEXT: ldrh w8, [x0, #8190]
1091
1091
; CHECK-NOLSE-O1-NEXT: ldrh w9, [x0, w1, sxtw #1]
1092
- ; CHECK-NOLSE-O1-NEXT: add x11, x0, #291, lsl #12 ; =1191936
1093
1092
; 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
1098
1098
; CHECK-NOLSE-O1-NEXT: ret
1099
1099
;
1100
1100
; CHECK-OUTLINE-O1-LABEL: atomic_load_relaxed_16:
1101
1101
; CHECK-OUTLINE-O1: ; %bb.0:
1102
1102
; CHECK-OUTLINE-O1-NEXT: ldrh w8, [x0, #8190]
1103
1103
; CHECK-OUTLINE-O1-NEXT: ldrh w9, [x0, w1, sxtw #1]
1104
- ; CHECK-OUTLINE-O1-NEXT: add x11, x0, #291, lsl #12 ; =1191936
1105
1104
; 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
1110
1110
; CHECK-OUTLINE-O1-NEXT: ret
1111
1111
;
1112
1112
; CHECK-NOLSE-O0-LABEL: atomic_load_relaxed_16:
@@ -1141,12 +1141,12 @@ define i16 @atomic_load_relaxed_16(ptr %p, i32 %off32) #0 {
1141
1141
; CHECK-LSE-O1: ; %bb.0:
1142
1142
; CHECK-LSE-O1-NEXT: ldrh w8, [x0, #8190]
1143
1143
; 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
1147
1147
; CHECK-LSE-O1-NEXT: add x9, x0, #291, lsl #12 ; =1191936
1148
1148
; 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
1150
1150
; CHECK-LSE-O1-NEXT: ret
1151
1151
;
1152
1152
; CHECK-LSE-O0-LABEL: atomic_load_relaxed_16:
0 commit comments