[llvm] dc76ac6 - [DirectX] Allow llvm.assume intrinsic to pass on to DXIL (#165311)

via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 27 22:11:10 PDT 2025


Author: Farzon Lotfi
Date: 2025-10-27T22:11:05-07:00
New Revision: dc76ac607181042bbd420afd2e9d205e411a5857

URL: https://github.com/llvm/llvm-project/commit/dc76ac607181042bbd420afd2e9d205e411a5857
DIFF: https://github.com/llvm/llvm-project/commit/dc76ac607181042bbd420afd2e9d205e411a5857.diff

LOG: [DirectX] Allow llvm.assume intrinsic to pass on to DXIL (#165311)

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.

Added: 
    llvm/test/tools/dxil-dis/llvm_assume.ll

Modified: 
    llvm/lib/Target/DirectX/DXILOpLowering.cpp

Removed: 
    


################################################################################
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
+}
+


        


More information about the llvm-commits mailing list