[llvm] [llvm-reduce] Use poison for x86_amx default constants (PR #218157)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 26 00:50:23 PDT 2026
================
@@ -0,0 +1,73 @@
+; RUN: llvm-reduce --delta-passes=instructions-to-return --test FileCheck --test-arg %s --test-arg --input-file %s
+
+; Check that we do not end up executing an unreachable by trying to create
+; a default constant value for an x86_amx value.
+
+; CHECK: x86_amx
+
+target triple = "x86_64-unknown-linux-gnu"
+
+define void @wobble() #0 {
+bbl:
+ %call = call x86_amx @llvm.x86.tilezero.internal(i16 0, i16 undef)
+ ret void
+}
+
+define <256 x i32> @ham() #0 {
+bbl:
+ %call = call x86_amx @llvm.x86.tileloadd64.internal(i16 undef, i16 0, ptr null, i64 0)
+ ret <256 x i32> zeroinitializer
+}
+
+define <256 x i32> @spam(i64 %arg, i1 %arg1) #0 {
+bbl:
+ %alloca = alloca i32, i32 4
+ br i1 %arg1, label %bbl2, label %bbl3
+
+bbl2: ; preds = %bbl
+ call void @baz()
+ ret <256 x i32> zeroinitializer
+
+bbl3: ; preds = %bbl
+ switch i64 %arg, label %bbl11 [
+ i64 2, label %bbl9
+ i64 1, label %bbl4
+ ]
+
+bbl4: ; preds = %bbl3
+ call void @llvm.lifetime.start.p0(ptr %alloca)
+ call x86_amx @llvm.x86.tilezero.internal(i16 0, i16 undef)
+ call x86_amx @llvm.x86.tilezero.internal(i16 0, i16 undef)
+ br label %bbl5
+
+bbl5: ; preds = %bbl5, %bbl4
+ %phi = phi ptr [ %alloca, %bbl4 ], [ null, %bbl5 ]
+ %phi6 = phi i1 [ false, %bbl4 ], [ true, %bbl5 ]
+ store volatile i32 0, ptr %phi, align 4
+ br i1 %phi6, label %bbl7, label %bbl5
+
+bbl7: ; preds = %bbl5
+ %call = call <256 x i32> @ham()
+ %call8 = call <256 x i32> @ham()
+ ret <256 x i32> zeroinitializer
+
+bbl9: ; preds = %bbl3
+ call x86_amx @llvm.x86.tilezero.internal(i16 0, i16 undef)
+ call x86_amx @llvm.x86.tilezero.internal(i16 0, i16 undef)
+ %call10 = call x86_amx @llvm.x86.tileloadd64.internal(i16 0, i16 0, ptr null, i64 0)
+ unreachable
+
+bbl11: ; preds = %bbl3
+ call void @wobble()
+ ret <256 x i32> zeroinitializer
+}
+
+; Function Attrs: noreturn
----------------
arsenm wrote:
```suggestion
```
https://github.com/llvm/llvm-project/pull/218157
More information about the llvm-commits
mailing list