[llvm] [DirectX] Allow llvm.assume intrinsic to pass on to DXIL (PR #165311)
Farzon Lotfi via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 27 13:34:11 PDT 2025
https://github.com/farzonl created https://github.com/llvm/llvm-project/pull/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.
>From 7dc2d23a087cc55b2ff6dfa5e568166d3020650a Mon Sep 17 00:00:00 2001
From: Farzon Lotfi <farzonlotfi at microsoft.com>
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
+}
+
More information about the llvm-commits
mailing list