From 7dc2d23a087cc55b2ff6dfa5e568166d3020650a Mon Sep 17 00:00:00 2001 From: Farzon Lotfi Date: Mon, 27 Oct 2025 13:30:59 -0700 Subject: [PATCH] [DirectX] Allow llvm.assume intrinsic to pass on to DXIL fixes #165051 Change is just to let the assume intrinsic pass on unmodified. Test is to confirm the DXIL disassembler doesn't blow up whe we generate DXIL with this intrinsic. --- llvm/lib/Target/DirectX/DXILOpLowering.cpp | 2 ++ llvm/test/tools/dxil-dis/llvm_assume.ll | 11 +++++++++++ 2 files changed, 13 insertions(+) create mode 100644 llvm/test/tools/dxil-dis/llvm_assume.ll diff --git a/llvm/lib/Target/DirectX/DXILOpLowering.cpp b/llvm/lib/Target/DirectX/DXILOpLowering.cpp index e46a393e50906..8720460cceb20 100644 --- a/llvm/lib/Target/DirectX/DXILOpLowering.cpp +++ b/llvm/lib/Target/DirectX/DXILOpLowering.cpp @@ -904,6 +904,8 @@ class OpLowerer { case Intrinsic::dx_resource_casthandle: // NOTE: llvm.dbg.value is supported as is in DXIL. case Intrinsic::dbg_value: + // NOTE: llvm.assume is supported as is in DXIL. + case Intrinsic::assume: case Intrinsic::not_intrinsic: if (F.use_empty()) F.eraseFromParent(); diff --git a/llvm/test/tools/dxil-dis/llvm_assume.ll b/llvm/test/tools/dxil-dis/llvm_assume.ll new file mode 100644 index 0000000000000..f5be66c0d192f --- /dev/null +++ b/llvm/test/tools/dxil-dis/llvm_assume.ll @@ -0,0 +1,11 @@ +; RUN: llc --filetype=obj %s -o - | dxil-dis -o - | FileCheck %s + +target triple = "dxil-pc-shadermodel6.7-library" + +define void @test_llvm_assume(i1 %0) { +; CHECK-LABEL: test_llvm_assume +; CHECK-NEXT: tail call void @llvm.assume(i1 %0) +tail call void @llvm.assume(i1 %0) +ret void +} +