@@ -219,6 +219,51 @@ builtin.module {
219
219
// CHECK-NEXT: %{{.*}} = riscv.xori %cmpf14_2, 1 : (!riscv.reg) -> !riscv.reg
220
220
%cmpf15 = " arith.cmpf" (%lhsf32 , %rhsf32 ) {" predicate" = 15 : i32 } : (f32 , f32 ) -> i1
221
221
// CHECK-NEXT: %{{.*}} = riscv.li 1 : !riscv.reg
222
+
223
+ // tests with fastmath flags when set to "fast"
224
+ %cmpf1_fm = " arith.cmpf" (%lhsf32 , %rhsf32 ) {" predicate" = 1 : i32 , " fastmath" = #arith.fastmath <fast >} : (f32 , f32 ) -> i1
225
+ // CHECK-NEXT: %{{.*}} = riscv.feq.s %lhsf32_1, %rhsf32_1 fastmath<fast> : (!riscv.freg, !riscv.freg) -> !riscv.reg
226
+ %cmpf2_fm = " arith.cmpf" (%lhsf32 , %rhsf32 ) {" predicate" = 2 : i32 , " fastmath" = #arith.fastmath <fast >} : (f32 , f32 ) -> i1
227
+ // CHECK-NEXT: %{{.*}} = riscv.flt.s %rhsf32_1, %lhsf32_1 fastmath<fast> : (!riscv.freg, !riscv.freg) -> !riscv.reg
228
+ %cmpf3_fm = " arith.cmpf" (%lhsf32 , %rhsf32 ) {" predicate" = 3 : i32 , " fastmath" = #arith.fastmath <fast >} : (f32 , f32 ) -> i1
229
+ // CHECK-NEXT: %{{.*}} = riscv.fle.s %rhsf32_1, %lhsf32_1 fastmath<fast> : (!riscv.freg, !riscv.freg) -> !riscv.reg
230
+ %cmpf4_fm = " arith.cmpf" (%lhsf32 , %rhsf32 ) {" predicate" = 4 : i32 , " fastmath" = #arith.fastmath <fast >} : (f32 , f32 ) -> i1
231
+ // CHECK-NEXT: %{{.*}} = riscv.flt.s %lhsf32_1, %rhsf32_1 fastmath<fast> : (!riscv.freg, !riscv.freg) -> !riscv.reg
232
+ %cmpf5_fm = " arith.cmpf" (%lhsf32 , %rhsf32 ) {" predicate" = 5 : i32 , " fastmath" = #arith.fastmath <fast >} : (f32 , f32 ) -> i1
233
+ // CHECK-NEXT: %{{.*}} = riscv.fle.s %lhsf32_1, %rhsf32_1 fastmath<fast> : (!riscv.freg, !riscv.freg) -> !riscv.reg
234
+ %cmpf6_fm = " arith.cmpf" (%lhsf32 , %rhsf32 ) {" predicate" = 6 : i32 , " fastmath" = #arith.fastmath <fast >} : (f32 , f32 ) -> i1
235
+ // CHECK-NEXT: %{{.*}} = riscv.flt.s %lhsf32_1, %rhsf32_1 fastmath<fast> : (!riscv.freg, !riscv.freg) -> !riscv.reg
236
+ // CHECK-NEXT: %{{.*}} = riscv.flt.s %rhsf32_1, %lhsf32_1 fastmath<fast> : (!riscv.freg, !riscv.freg) -> !riscv.reg
237
+ // CHECK-NEXT: %{{.*}} = riscv.or %cmpf6_fm_1, %cmpf6_fm : (!riscv.reg, !riscv.reg) -> !riscv.reg
238
+ %cmpf7_fm = " arith.cmpf" (%lhsf32 , %rhsf32 ) {" predicate" = 7 : i32 , " fastmath" = #arith.fastmath <fast >} : (f32 , f32 ) -> i1
239
+ // CHECK-NEXT: %{{.*}} = riscv.feq.s %lhsf32_1, %lhsf32_1 fastmath<fast> : (!riscv.freg, !riscv.freg) -> !riscv.reg
240
+ // CHECK-NEXT: %{{.*}} = riscv.feq.s %rhsf32_1, %rhsf32_1 fastmath<fast> : (!riscv.freg, !riscv.freg) -> !riscv.reg
241
+ // CHECK-NEXT: %{{.*}} = riscv.and %cmpf7_fm_1, %cmpf7_fm : (!riscv.reg, !riscv.reg) -> !riscv.reg
242
+ %cmpf8_fm = " arith.cmpf" (%lhsf32 , %rhsf32 ) {" predicate" = 8 : i32 , " fastmath" = #arith.fastmath <fast >} : (f32 , f32 ) -> i1
243
+ // CHECK-NEXT: %{{.*}} = riscv.flt.s %lhsf32_1, %rhsf32_1 fastmath<fast> : (!riscv.freg, !riscv.freg) -> !riscv.reg
244
+ // CHECK-NEXT: %{{.*}} = riscv.flt.s %rhsf32_1, %lhsf32_1 fastmath<fast> : (!riscv.freg, !riscv.freg) -> !riscv.reg
245
+ // CHECK-NEXT: %{{.*}} = riscv.or %cmpf8_fm_1, %cmpf8_fm : (!riscv.reg, !riscv.reg) -> !riscv.reg
246
+ // CHECK-NEXT: %{{.*}} = riscv.xori %cmpf8_fm_2, 1 : (!riscv.reg) -> !riscv.reg
247
+ %cmpf9_fm = " arith.cmpf" (%lhsf32 , %rhsf32 ) {" predicate" = 9 : i32 , " fastmath" = #arith.fastmath <fast >} : (f32 , f32 ) -> i1
248
+ // CHECK-NEXT: %{{.*}} = riscv.fle.s %lhsf32_1, %rhsf32_1 fastmath<fast> : (!riscv.freg, !riscv.freg) -> !riscv.reg
249
+ // CHECK-NEXT: %{{.*}} = riscv.xori %cmpf9_fm, 1 : (!riscv.reg) -> !riscv.reg
250
+ %cmpf10_fm = " arith.cmpf" (%lhsf32 , %rhsf32 ) {" predicate" = 10 : i32 , " fastmath" = #arith.fastmath <fast >} : (f32 , f32 ) -> i1
251
+ // CHECK-NEXT: %{{.*}} = riscv.flt.s %lhsf32_1, %rhsf32_1 fastmath<fast> : (!riscv.freg, !riscv.freg) -> !riscv.reg
252
+ // CHECK-NEXT: %{{.*}} = riscv.xori %cmpf10_fm, 1 : (!riscv.reg) -> !riscv.reg
253
+ %cmpf11_fm = " arith.cmpf" (%lhsf32 , %rhsf32 ) {" predicate" = 11 : i32 , " fastmath" = #arith.fastmath <fast >} : (f32 , f32 ) -> i1
254
+ // CHECK-NEXT: %{{.*}} = riscv.fle.s %rhsf32_1, %lhsf32_1 fastmath<fast> : (!riscv.freg, !riscv.freg) -> !riscv.reg
255
+ // CHECK-NEXT: %{{.*}} = riscv.xori %cmpf11_fm, 1 : (!riscv.reg) -> !riscv.reg
256
+ %cmpf12_fm = " arith.cmpf" (%lhsf32 , %rhsf32 ) {" predicate" = 12 : i32 , " fastmath" = #arith.fastmath <fast >} : (f32 , f32 ) -> i1
257
+ // CHECK-NEXT: %{{.*}} = riscv.flt.s %rhsf32_1, %lhsf32_1 fastmath<fast> : (!riscv.freg, !riscv.freg) -> !riscv.reg
258
+ // CHECK-NEXT: %{{.*}} = riscv.xori %cmpf12_fm, 1 : (!riscv.reg) -> !riscv.reg
259
+ %cmpf13_fm = " arith.cmpf" (%lhsf32 , %rhsf32 ) {" predicate" = 13 : i32 , " fastmath" = #arith.fastmath <fast >} : (f32 , f32 ) -> i1
260
+ // CHECK-NEXT: %{{.*}} = riscv.feq.s %lhsf32_1, %rhsf32_1 fastmath<fast> : (!riscv.freg, !riscv.freg) -> !riscv.reg
261
+ // CHECK-NEXT: %{{.*}} = riscv.xori %cmpf13_fm, 1 : (!riscv.reg) -> !riscv.reg
262
+ %cmpf14_fm = " arith.cmpf" (%lhsf32 , %rhsf32 ) {" predicate" = 14 : i32 , " fastmath" = #arith.fastmath <fast >} : (f32 , f32 ) -> i1
263
+ // CHECK-NEXT: %{{.*}} = riscv.feq.s %lhsf32_1, %lhsf32_1 fastmath<fast> : (!riscv.freg, !riscv.freg) -> !riscv.reg
264
+ // CHECK-NEXT: %{{.*}} = riscv.feq.s %rhsf32_1, %rhsf32_1 fastmath<fast> : (!riscv.freg, !riscv.freg) -> !riscv.reg
265
+ // CHECK-NEXT: %{{.*}} = riscv.and %cmpf14_fm_1, %cmpf14_fm : (!riscv.reg, !riscv.reg) -> !riscv.reg
266
+ // CHECK-NEXT: %{{.*}} = riscv.xori %cmpf14_fm_2, 1 : (!riscv.reg) -> !riscv.reg
222
267
%index_cast = " arith.index_cast" (%lhsindex ) : (index ) -> i32
223
268
// CHECK-NEXT: }
224
269
}
0 commit comments