Skip to content

Commit 1853659

Browse files
committed
fixup! Add tests for mlir
1 parent 83b1785 commit 1853659

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3285,7 +3285,9 @@ void AtomicRMWOp::build(OpBuilder &builder, OperationState &state,
32853285
LogicalResult AtomicRMWOp::verify() {
32863286
auto valType = getVal().getType();
32873287
if (getBinOp() == AtomicBinOp::fadd || getBinOp() == AtomicBinOp::fsub ||
3288-
getBinOp() == AtomicBinOp::fmin || getBinOp() == AtomicBinOp::fmax) {
3288+
getBinOp() == AtomicBinOp::fmin || getBinOp() == AtomicBinOp::fmax ||
3289+
getBinOp() == AtomicBinOp::fminimum ||
3290+
getBinOp() == AtomicBinOp::fmaximum) {
32893291
if (isCompatibleVectorType(valType)) {
32903292
if (isScalableVectorType(valType))
32913293
return emitOpError("expected LLVM IR fixed vector type");

mlir/test/Target/LLVMIR/Import/instructions.ll

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -471,11 +471,15 @@ define void @atomic_rmw(ptr %ptr1, i32 %val1, ptr %ptr2, float %val2) {
471471
%18 = atomicrmw usub_cond ptr %ptr1, i32 %val1 acquire
472472
; CHECK: llvm.atomicrmw usub_sat %[[PTR1]], %[[VAL1]] acquire
473473
%19 = atomicrmw usub_sat ptr %ptr1, i32 %val1 acquire
474+
; CHECK: llvm.atomicrmw fmaximum %[[PTR2]], %[[VAL2]] acquire
475+
%20 = atomicrmw fmaximum ptr %ptr2, float %val2 acquire
476+
; CHECK: llvm.atomicrmw fminimum %[[PTR2]], %[[VAL2]] acquire
477+
%21 = atomicrmw fminimum ptr %ptr2, float %val2 acquire
474478

475479
; CHECK: llvm.atomicrmw volatile
476480
; CHECK-SAME: syncscope("singlethread")
477481
; CHECK-SAME: {alignment = 8 : i64}
478-
%20 = atomicrmw volatile udec_wrap ptr %ptr1, i32 %val1 syncscope("singlethread") acquire, align 8
482+
%22 = atomicrmw volatile udec_wrap ptr %ptr1, i32 %val1 syncscope("singlethread") acquire, align 8
479483
ret void
480484
}
481485

mlir/test/Target/LLVMIR/llvmir.mlir

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1555,11 +1555,19 @@ llvm.func @atomicrmw(
15551555
%21 = llvm.atomicrmw fmax %f16_vec_ptr, %f16_vec monotonic : !llvm.ptr, vector<2xf16>
15561556
// CHECK: atomicrmw fmin ptr %{{.*}}, <2 x half> %{{.*}} monotonic
15571557
%22 = llvm.atomicrmw fmin %f16_vec_ptr, %f16_vec monotonic : !llvm.ptr, vector<2xf16>
1558+
// CHECK: atomicrmw fmaximum ptr %{{.*}}, float %{{.*}} monotonic
1559+
%23 = llvm.atomicrmw fmaximum %f32_ptr, %f32 monotonic : !llvm.ptr, f32
1560+
// CHECK: atomicrmw fminimum ptr %{{.*}}, float %{{.*}} monotonic
1561+
%24 = llvm.atomicrmw fminimum %f32_ptr, %f32 monotonic : !llvm.ptr, f32
1562+
// CHECK: atomicrmw fmaximum ptr %{{.*}}, <2 x half> %{{.*}} monotonic
1563+
%25 = llvm.atomicrmw fmaximum %f16_vec_ptr, %f16_vec monotonic : !llvm.ptr, vector<2xf16>
1564+
// CHECK: atomicrmw fminimum ptr %{{.*}}, <2 x half> %{{.*}} monotonic
1565+
%26 = llvm.atomicrmw fminimum %f16_vec_ptr, %f16_vec monotonic : !llvm.ptr, vector<2xf16>
15581566

15591567
// CHECK: atomicrmw volatile
15601568
// CHECK-SAME: syncscope("singlethread")
15611569
// CHECK-SAME: align 8
1562-
%23 = llvm.atomicrmw volatile udec_wrap %i32_ptr, %i32 syncscope("singlethread") monotonic {alignment = 8 : i64} : !llvm.ptr, i32
1570+
%27 = llvm.atomicrmw volatile udec_wrap %i32_ptr, %i32 syncscope("singlethread") monotonic {alignment = 8 : i64} : !llvm.ptr, i32
15631571
llvm.return
15641572
}
15651573

0 commit comments

Comments
 (0)