@@ -98,78 +98,128 @@ impl TryFrom<u32> for AddressSpace {
98
98
match val {
99
99
0 => Ok ( AddressSpace :: Generic ) ,
100
100
1 => Ok ( AddressSpace :: Global ) ,
101
- 2 => Ok ( AddressSpace :: Shared ) ,
102
- 3 => Ok ( AddressSpace :: Const ) ,
103
- 4 => Ok ( AddressSpace :: Local ) ,
101
+ 3 => Ok ( AddressSpace :: Shared ) ,
102
+ 4 => Ok ( AddressSpace :: Const ) ,
103
+ 5 => Ok ( AddressSpace :: Local ) ,
104
104
_ => Err ( ( ) ) ,
105
105
}
106
106
}
107
107
}
108
108
109
109
// REVIEW: Maybe this belongs in some sort of prelude?
110
- enum_rename ! {
111
- /// This enum defines how to compare a `left` and `right` `IntValue`.
112
- IntPredicate <=> LLVMIntPredicate {
113
- /// Equal
114
- EQ <=> LLVMIntEQ ,
115
- /// Not Equal
116
- NE <=> LLVMIntNE ,
117
- /// Unsigned Greater Than
118
- UGT <=> LLVMIntUGT ,
119
- /// Unsigned Greater Than or Equal
120
- UGE <=> LLVMIntUGE ,
121
- /// Unsigned Less Than
122
- ULT <=> LLVMIntULT ,
123
- /// Unsigned Less Than or Equal
124
- ULE <=> LLVMIntULE ,
125
- /// Signed Greater Than
126
- SGT <=> LLVMIntSGT ,
127
- /// Signed Greater Than or Equal
128
- SGE <=> LLVMIntSGE ,
129
- /// Signed Less Than
130
- SLT <=> LLVMIntSLT ,
131
- /// Signed Less Than or Equal
132
- SLE <=> LLVMIntSLE ,
133
- }
110
+ /// This enum defines how to compare a `left` and `right` `IntValue`.
111
+ #[ llvm_enum( LLVMIntPredicate ) ]
112
+ #[ derive( Debug , Clone , Copy , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
113
+ pub enum IntPredicate {
114
+ /// Equal
115
+ #[ llvm_variant( LLVMIntEQ ) ]
116
+ EQ ,
117
+
118
+ /// Not Equal
119
+ #[ llvm_variant( LLVMIntNE ) ]
120
+ NE ,
121
+
122
+ /// Unsigned Greater Than
123
+ #[ llvm_variant( LLVMIntUGT ) ]
124
+ UGT ,
125
+
126
+ /// Unsigned Greater Than or Equal
127
+ #[ llvm_variant( LLVMIntUGE ) ]
128
+ UGE ,
129
+
130
+ /// Unsigned Less Than
131
+ #[ llvm_variant( LLVMIntULT ) ]
132
+ ULT ,
133
+
134
+ /// Unsigned Less Than or Equal
135
+ #[ llvm_variant( LLVMIntULE ) ]
136
+ ULE ,
137
+
138
+ /// Signed Greater Than
139
+ #[ llvm_variant( LLVMIntSGT ) ]
140
+ SGT ,
141
+
142
+ /// Signed Greater Than or Equal
143
+ #[ llvm_variant( LLVMIntSGE ) ]
144
+ SGE ,
145
+
146
+ /// Signed Less Than
147
+ #[ llvm_variant( LLVMIntSLT ) ]
148
+ SLT ,
149
+
150
+ /// Signed Less Than or Equal
151
+ #[ llvm_variant( LLVMIntSLE ) ]
152
+ SLE ,
134
153
}
135
154
136
155
// REVIEW: Maybe this belongs in some sort of prelude?
137
- enum_rename ! {
138
- /// Defines how to compare a `left` and `right` `FloatValue`.
139
- FloatPredicate <=> LLVMRealPredicate {
140
- /// Returns true if `left` == `right` and neither are NaN
141
- OEQ <=> LLVMRealOEQ ,
142
- /// Returns true if `left` >= `right` and neither are NaN
143
- OGE <=> LLVMRealOGE ,
144
- /// Returns true if `left` > `right` and neither are NaN
145
- OGT <=> LLVMRealOGT ,
146
- /// Returns true if `left` <= `right` and neither are NaN
147
- OLE <=> LLVMRealOLE ,
148
- /// Returns true if `left` < `right` and neither are NaN
149
- OLT <=> LLVMRealOLT ,
150
- /// Returns true if `left` != `right` and neither are NaN
151
- ONE <=> LLVMRealONE ,
152
- /// Returns true if neither value is NaN
153
- ORD <=> LLVMRealORD ,
154
- /// Always returns false
155
- PredicateFalse <=> LLVMRealPredicateFalse ,
156
- /// Always returns true
157
- PredicateTrue <=> LLVMRealPredicateTrue ,
158
- /// Returns true if `left` == `right` or either is NaN
159
- UEQ <=> LLVMRealUEQ ,
160
- /// Returns true if `left` >= `right` or either is NaN
161
- UGE <=> LLVMRealUGE ,
162
- /// Returns true if `left` > `right` or either is NaN
163
- UGT <=> LLVMRealUGT ,
164
- /// Returns true if `left` <= `right` or either is NaN
165
- ULE <=> LLVMRealULE ,
166
- /// Returns true if `left` < `right` or either is NaN
167
- ULT <=> LLVMRealULT ,
168
- /// Returns true if `left` != `right` or either is NaN
169
- UNE <=> LLVMRealUNE ,
170
- /// Returns true if either value is NaN
171
- UNO <=> LLVMRealUNO ,
172
- }
156
+ /// Defines how to compare a `left` and `right` `FloatValue`.
157
+ #[ llvm_enum( LLVMRealPredicate ) ]
158
+ #[ derive( Debug , Clone , Copy , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
159
+ pub enum FloatPredicate {
160
+ /// Returns true if `left` == `right` and neither are NaN
161
+ #[ llvm_variant( LLVMRealOEQ ) ]
162
+ OEQ ,
163
+
164
+ /// Returns true if `left` >= `right` and neither are NaN
165
+ #[ llvm_variant( LLVMRealOGE ) ]
166
+ OGE ,
167
+
168
+ /// Returns true if `left` > `right` and neither are NaN
169
+ #[ llvm_variant( LLVMRealOGT ) ]
170
+ OGT ,
171
+
172
+ /// Returns true if `left` <= `right` and neither are NaN
173
+ #[ llvm_variant( LLVMRealOLE ) ]
174
+ OLE ,
175
+
176
+ /// Returns true if `left` < `right` and neither are NaN
177
+ #[ llvm_variant( LLVMRealOLT ) ]
178
+ OLT ,
179
+
180
+ /// Returns true if `left` != `right` and neither are NaN
181
+ #[ llvm_variant( LLVMRealONE ) ]
182
+ ONE ,
183
+
184
+ /// Returns true if neither value is NaN
185
+ #[ llvm_variant( LLVMRealORD ) ]
186
+ ORD ,
187
+
188
+ /// Always returns false
189
+ #[ llvm_variant( LLVMRealPredicateFalse ) ]
190
+ PredicateFalse ,
191
+
192
+ /// Always returns true
193
+ #[ llvm_variant( LLVMRealPredicateTrue ) ]
194
+ PredicateTrue ,
195
+
196
+ /// Returns true if `left` == `right` or either is NaN
197
+ #[ llvm_variant( LLVMRealUEQ ) ]
198
+ UEQ ,
199
+
200
+ /// Returns true if `left` >= `right` or either is NaN
201
+ #[ llvm_variant( LLVMRealUGE ) ]
202
+ UGE ,
203
+
204
+ /// Returns true if `left` > `right` or either is NaN
205
+ #[ llvm_variant( LLVMRealUGT ) ]
206
+ UGT ,
207
+
208
+ /// Returns true if `left` <= `right` or either is NaN
209
+ #[ llvm_variant( LLVMRealULE ) ]
210
+ ULE ,
211
+
212
+ /// Returns true if `left` < `right` or either is NaN
213
+ #[ llvm_variant( LLVMRealULT ) ]
214
+ ULT ,
215
+
216
+ /// Returns true if `left` != `right` or either is NaN
217
+ #[ llvm_variant( LLVMRealUNE ) ]
218
+ UNE ,
219
+
220
+ /// Returns true if either value is NaN
221
+ #[ llvm_variant( LLVMRealUNO ) ]
222
+ UNO ,
173
223
}
174
224
175
225
// REVIEW: Maybe this belongs in some sort of prelude?
0 commit comments