@@ -55,9 +55,9 @@ let Predicates = [HasRCPC] in {
55
55
// 16-bit loads
56
56
def : Pat<(acquiring_load<atomic_load_azext_16> GPR64sp:$ptr), (LDAPRH GPR64sp:$ptr)>;
57
57
// 32-bit loads
58
- def : Pat<(acquiring_load<atomic_load_32 > GPR64sp:$ptr), (LDAPRW GPR64sp:$ptr)>;
58
+ def : Pat<(acquiring_load<atomic_load_nonext_32 > GPR64sp:$ptr), (LDAPRW GPR64sp:$ptr)>;
59
59
// 64-bit loads
60
- def : Pat<(acquiring_load<atomic_load_64 > GPR64sp:$ptr), (LDAPRX GPR64sp:$ptr)>;
60
+ def : Pat<(acquiring_load<atomic_load_nonext_64 > GPR64sp:$ptr), (LDAPRX GPR64sp:$ptr)>;
61
61
}
62
62
63
63
// 8-bit loads
@@ -93,62 +93,66 @@ def : Pat<(relaxed_load<atomic_load_azext_16>
93
93
(LDURHHi GPR64sp:$Rn, simm9:$offset)>;
94
94
95
95
// 32-bit loads
96
- def : Pat<(seq_cst_load<atomic_load_32> GPR64sp:$ptr), (LDARW GPR64sp:$ptr)>;
97
- def : Pat<(acquiring_load<atomic_load_32> GPR64sp:$ptr), (LDARW GPR64sp:$ptr)>;
98
- def : Pat<(relaxed_load<atomic_load_32> (ro_Windexed32 GPR64sp:$Rn, GPR32:$Rm,
99
- ro_Wextend32:$extend)),
96
+ def : Pat<(seq_cst_load<atomic_load_nonext_32> GPR64sp:$ptr),
97
+ (LDARW GPR64sp:$ptr)>;
98
+ def : Pat<(acquiring_load<atomic_load_nonext_32> GPR64sp:$ptr),
99
+ (LDARW GPR64sp:$ptr)>;
100
+ def : Pat<(relaxed_load<atomic_load_nonext_32>
101
+ (ro_Windexed32 GPR64sp:$Rn, GPR32:$Rm, ro_Wextend32:$extend)),
100
102
(LDRWroW GPR64sp:$Rn, GPR32:$Rm, ro_Wextend32:$extend)>;
101
- def : Pat<(relaxed_load<atomic_load_32> (ro_Xindexed32 GPR64sp:$Rn, GPR64:$Rm,
102
- ro_Xextend32:$extend)),
103
+ def : Pat<(relaxed_load<atomic_load_nonext_32>
104
+ (ro_Xindexed32 GPR64sp:$Rn, GPR64:$Rm, ro_Xextend32:$extend)),
103
105
(LDRWroX GPR64sp:$Rn, GPR64:$Rm, ro_Xextend32:$extend)>;
104
- def : Pat<(relaxed_load<atomic_load_32> (am_indexed32 GPR64sp:$Rn,
105
- uimm12s4:$offset)),
106
+ def : Pat<(relaxed_load<atomic_load_nonext_32>
107
+ (am_indexed32 GPR64sp:$Rn, uimm12s4:$offset)),
106
108
(LDRWui GPR64sp:$Rn, uimm12s4:$offset)>;
107
- def : Pat<(relaxed_load<atomic_load_32 >
109
+ def : Pat<(relaxed_load<atomic_load_nonext_32 >
108
110
(am_unscaled32 GPR64sp:$Rn, simm9:$offset)),
109
111
(LDURWi GPR64sp:$Rn, simm9:$offset)>;
110
112
111
113
// 64-bit loads
112
- def : Pat<(seq_cst_load<atomic_load_64> GPR64sp:$ptr), (LDARX GPR64sp:$ptr)>;
113
- def : Pat<(acquiring_load<atomic_load_64> GPR64sp:$ptr), (LDARX GPR64sp:$ptr)>;
114
- def : Pat<(relaxed_load<atomic_load_64> (ro_Windexed64 GPR64sp:$Rn, GPR32:$Rm,
115
- ro_Wextend64:$extend)),
114
+ def : Pat<(seq_cst_load<atomic_load_nonext_64> GPR64sp:$ptr),
115
+ (LDARX GPR64sp:$ptr)>;
116
+ def : Pat<(acquiring_load<atomic_load_nonext_64> GPR64sp:$ptr),
117
+ (LDARX GPR64sp:$ptr)>;
118
+ def : Pat<(relaxed_load<atomic_load_nonext_64>
119
+ (ro_Windexed64 GPR64sp:$Rn, GPR32:$Rm, ro_Wextend64:$extend)),
116
120
(LDRXroW GPR64sp:$Rn, GPR32:$Rm, ro_Wextend64:$extend)>;
117
- def : Pat<(relaxed_load<atomic_load_64> (ro_Xindexed64 GPR64sp:$Rn, GPR64:$Rm,
118
- ro_Xextend64:$extend)),
121
+ def : Pat<(relaxed_load<atomic_load_nonext_64>
122
+ (ro_Xindexed64 GPR64sp:$Rn, GPR64:$Rm, ro_Xextend64:$extend)),
119
123
(LDRXroX GPR64sp:$Rn, GPR64:$Rm, ro_Xextend64:$extend)>;
120
- def : Pat<(relaxed_load<atomic_load_64> (am_indexed64 GPR64sp:$Rn,
121
- uimm12s8:$offset)),
124
+ def : Pat<(relaxed_load<atomic_load_nonext_64>
125
+ (am_indexed64 GPR64sp:$Rn, uimm12s8:$offset)),
122
126
(LDRXui GPR64sp:$Rn, uimm12s8:$offset)>;
123
- def : Pat<(relaxed_load<atomic_load_64 >
127
+ def : Pat<(relaxed_load<atomic_load_nonext_64 >
124
128
(am_unscaled64 GPR64sp:$Rn, simm9:$offset)),
125
129
(LDURXi GPR64sp:$Rn, simm9:$offset)>;
126
130
127
131
// FP 32-bit loads
128
- def : Pat<(f32 (bitconvert (i32 (relaxed_load<atomic_load_32> (ro_Windexed32 GPR64sp:$Rn, GPR32:$Rm,
129
- ro_Wextend32:$extend))))),
132
+ def : Pat<(f32 (bitconvert (i32 (relaxed_load<atomic_load_nonext_32>
133
+ (ro_Windexed32 GPR64sp:$Rn, GPR32:$Rm, ro_Wextend32:$extend))))),
130
134
(LDRSroW GPR64sp:$Rn, GPR32:$Rm, ro_Wextend32:$extend)>;
131
- def : Pat<(f32 (bitconvert (i32 (relaxed_load<atomic_load_32> (ro_Xindexed32 GPR64sp:$Rn, GPR64:$Rm,
132
- ro_Xextend32:$extend))))),
135
+ def : Pat<(f32 (bitconvert (i32 (relaxed_load<atomic_load_nonext_32>
136
+ (ro_Xindexed32 GPR64sp:$Rn, GPR64:$Rm, ro_Xextend32:$extend))))),
133
137
(LDRSroX GPR64sp:$Rn, GPR64:$Rm, ro_Xextend32:$extend)>;
134
- def : Pat<(f32 (bitconvert (i32 (relaxed_load<atomic_load_32> (am_indexed32 GPR64sp:$Rn,
135
- uimm12s8:$offset))))),
138
+ def : Pat<(f32 (bitconvert (i32 (relaxed_load<atomic_load_nonext_32>
139
+ (am_indexed32 GPR64sp:$Rn, uimm12s8:$offset))))),
136
140
(LDRSui GPR64sp:$Rn, uimm12s8:$offset)>;
137
- def : Pat<(f32 (bitconvert (i32 (relaxed_load<atomic_load_32 >
141
+ def : Pat<(f32 (bitconvert (i32 (relaxed_load<atomic_load_nonext_32 >
138
142
(am_unscaled32 GPR64sp:$Rn, simm9:$offset))))),
139
143
(LDURSi GPR64sp:$Rn, simm9:$offset)>;
140
144
141
145
// FP 64-bit loads
142
- def : Pat<(f64 (bitconvert (i64 (relaxed_load<atomic_load_64> (ro_Windexed64 GPR64sp:$Rn, GPR32:$Rm,
143
- ro_Wextend64:$extend))))),
146
+ def : Pat<(f64 (bitconvert (i64 (relaxed_load<atomic_load_nonext_64>
147
+ (ro_Windexed64 GPR64sp:$Rn, GPR32:$Rm, ro_Wextend64:$extend))))),
144
148
(LDRDroW GPR64sp:$Rn, GPR32:$Rm, ro_Wextend64:$extend)>;
145
- def : Pat<(f64 (bitconvert (i64 (relaxed_load<atomic_load_64> (ro_Xindexed64 GPR64sp:$Rn, GPR64:$Rm,
146
- ro_Xextend64:$extend))))),
149
+ def : Pat<(f64 (bitconvert (i64 (relaxed_load<atomic_load_nonext_64>
150
+ (ro_Xindexed64 GPR64sp:$Rn, GPR64:$Rm, ro_Xextend64:$extend))))),
147
151
(LDRDroX GPR64sp:$Rn, GPR64:$Rm, ro_Xextend64:$extend)>;
148
- def : Pat<(f64 (bitconvert (i64 (relaxed_load<atomic_load_64> (am_indexed64 GPR64sp:$Rn,
149
- uimm12s8:$offset))))),
152
+ def : Pat<(f64 (bitconvert (i64 (relaxed_load<atomic_load_nonext_64>
153
+ (am_indexed64 GPR64sp:$Rn, uimm12s8:$offset))))),
150
154
(LDRDui GPR64sp:$Rn, uimm12s8:$offset)>;
151
- def : Pat<(f64 (bitconvert (i64 (relaxed_load<atomic_load_64 >
155
+ def : Pat<(f64 (bitconvert (i64 (relaxed_load<atomic_load_nonext_64 >
152
156
(am_unscaled64 GPR64sp:$Rn, simm9:$offset))))),
153
157
(LDURDi GPR64sp:$Rn, simm9:$offset)>;
154
158
@@ -561,16 +565,16 @@ let Predicates = [HasLSFE] in {
561
565
let Predicates = [HasRCPC3, HasNEON] in {
562
566
// LDAP1 loads
563
567
def : Pat<(vector_insert (v2i64 VecListOne128:$Rd),
564
- (i64 (acquiring_load<atomic_load_64 > GPR64sp:$Rn)), (i64 VectorIndexD:$idx)),
568
+ (i64 (acquiring_load<atomic_load_nonext_64 > GPR64sp:$Rn)), (i64 VectorIndexD:$idx)),
565
569
(LDAP1 VecListOne128:$Rd, VectorIndexD:$idx, GPR64sp:$Rn)>;
566
570
def : Pat<(vector_insert (v2f64 VecListOne128:$Rd),
567
- (f64 (bitconvert (i64 (acquiring_load<atomic_load_64 > GPR64sp:$Rn)))), (i64 VectorIndexD:$idx)),
571
+ (f64 (bitconvert (i64 (acquiring_load<atomic_load_nonext_64 > GPR64sp:$Rn)))), (i64 VectorIndexD:$idx)),
568
572
(LDAP1 VecListOne128:$Rd, VectorIndexD:$idx, GPR64sp:$Rn)>;
569
573
def : Pat<(v1i64 (scalar_to_vector
570
- (i64 (acquiring_load<atomic_load_64 > GPR64sp:$Rn)))),
574
+ (i64 (acquiring_load<atomic_load_nonext_64 > GPR64sp:$Rn)))),
571
575
(EXTRACT_SUBREG (LDAP1 (v2i64 (IMPLICIT_DEF)), (i64 0), GPR64sp:$Rn), dsub)>;
572
576
def : Pat<(v1f64 (scalar_to_vector
573
- (f64 (bitconvert (i64 (acquiring_load<atomic_load_64 > GPR64sp:$Rn)))))),
577
+ (f64 (bitconvert (i64 (acquiring_load<atomic_load_nonext_64 > GPR64sp:$Rn)))))),
574
578
(EXTRACT_SUBREG (LDAP1 (v2f64 (IMPLICIT_DEF)), (i64 0), GPR64sp:$Rn), dsub)>;
575
579
576
580
// STL1 stores
@@ -597,10 +601,10 @@ let Predicates = [HasRCPC_IMMO, UseLDAPUR] in {
597
601
def : Pat<(acquiring_load<atomic_load_azext_16>
598
602
(am_unscaled16 GPR64sp:$Rn, simm9:$offset)),
599
603
(LDAPURHi GPR64sp:$Rn, simm9:$offset)>;
600
- def : Pat<(acquiring_load<atomic_load_32 >
604
+ def : Pat<(acquiring_load<atomic_load_nonext_32 >
601
605
(am_unscaled32 GPR64sp:$Rn, simm9:$offset)),
602
606
(LDAPURi GPR64sp:$Rn, simm9:$offset)>;
603
- def : Pat<(acquiring_load<atomic_load_64 >
607
+ def : Pat<(acquiring_load<atomic_load_nonext_64 >
604
608
(am_unscaled64 GPR64sp:$Rn, simm9:$offset)),
605
609
(LDAPURXi GPR64sp:$Rn, simm9:$offset)>;
606
610
}
0 commit comments