diff --git a/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td b/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td index dd00d67974d28..d77bf0f51b637 100644 --- a/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td +++ b/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td @@ -1162,9 +1162,13 @@ def LLVM_Annotation // Trap intrinsics. // -def LLVM_Trap : LLVM_ZeroResultIntrOp<"trap">; +def LLVM_Trap : LLVM_ZeroResultIntrOp<"trap"> { + let assemblyFormat = "attr-dict"; +} -def LLVM_DebugTrap : LLVM_ZeroResultIntrOp<"debugtrap">; +def LLVM_DebugTrap : LLVM_ZeroResultIntrOp<"debugtrap"> { + let assemblyFormat = "attr-dict"; +} def LLVM_UBSanTrap : LLVM_ZeroResultIntrOp<"ubsantrap", /*overloadedOperands=*/[], /*traits=*/[], @@ -1172,6 +1176,8 @@ def LLVM_UBSanTrap : LLVM_ZeroResultIntrOp<"ubsantrap", /*requiresArgAndResultAttrs=*/0, /*requiresOpBundles=*/0, /*immArgPositions=*/[0], /*immArgAttrNames=*/["failureKind"]> { let arguments = (ins I8Attr:$failureKind); + + let assemblyFormat = "attr-dict"; } /// Create a call to vscale intrinsic. diff --git a/mlir/test/Target/LLVMIR/Import/intrinsic.ll b/mlir/test/Target/LLVMIR/Import/intrinsic.ll index 07d22120153fe..db14a487b4aa7 100644 --- a/mlir/test/Target/LLVMIR/Import/intrinsic.ll +++ b/mlir/test/Target/LLVMIR/Import/intrinsic.ll @@ -567,12 +567,11 @@ define void @annotate_intrinsics(ptr %var, ptr %ptr, i16 %int, ptr %annotation, ; CHECK-LABEL: llvm.func @trap_intrinsics define void @trap_intrinsics() { - ; CHECK: "llvm.intr.trap"() : () -> () + ; CHECK: llvm.intr.trap call void @llvm.trap() - ; CHECK: "llvm.intr.debugtrap"() : () -> () + ; CHECK: llvm.intr.debugtrap call void @llvm.debugtrap() - ; CHECK: "llvm.intr.ubsantrap"() - ; CHECK-SAME: failureKind = 1 + ; CHECK: llvm.intr.ubsantrap {failureKind = 1 : i8} call void @llvm.ubsantrap(i8 1) ret void } diff --git a/mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir b/mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir index c99dde36f5ccb..b75e07ef85f60 100644 --- a/mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir +++ b/mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir @@ -607,6 +607,13 @@ llvm.func @trap_intrinsics() { "llvm.intr.debugtrap"() : () -> () // CHECK: call void @llvm.ubsantrap(i8 1) "llvm.intr.ubsantrap"() {failureKind = 1 : i8} : () -> () + + // CHECK: call void @llvm.trap() + llvm.intr.trap + // CHECK: call void @llvm.debugtrap() + llvm.intr.debugtrap + // CHECK: call void @llvm.ubsantrap(i8 1) + llvm.intr.ubsantrap {failureKind = 1 : i8} llvm.return }