This patch is related to https://reviews.llvm.org/D100032 which define
some illegal types or operations for x86_amx. There are no arguments,
arrays, pointers, vectors or constants of x86_amx.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
| llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp | ||
|---|---|---|
| 2414–2416 | Not the bitcast, the load/store is the problem. | |
| llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp | ||
|---|---|---|
| 2414–2416 | Since x86_amx pointer is invalid (llvm/test/Verifier/x86_amx8.ll), the load/store form x86_amx is also invalid. I change it as transform in the comments. | |
| llvm/test/Verifier/x86_amx1.ll | ||
|---|---|---|
| 3 | can all those tests be in a single test file? I think the other verifier tests also group multiple checks in a single file | |
| llvm/test/Verifier/x86_amx1.ll | ||
|---|---|---|
| 3 | Probably not. As llvm-as stops on the first error. ; RUN: not llvm-as %s -o /dev/null 2>&1 | FileCheck %s
define dso_local void @f() {
entry:
  %a.addr = alloca <2 x x86_amx>, align 4
  ret void
}
; CHECK: invalid vector element type
define void @f(x86_amx %A, x86_amx %B) {
entry:
  alloca x86_amx
; CHECK: invalid type for alloca
  ret void
} | |
| llvm/test/Verifier/x86_amx1.ll | ||
|---|---|---|
| 3 | I'm not sure if there's a problem with the test matrix verifier tests or another difference, but I *think* the matrix verifier tests check multiple errors in a single file for example: https://github.com/llvm/llvm-project/blob/main/llvm/test/Verifier/matrix-intrinsics.ll | |
| llvm/test/Verifier/x86_amx1.ll | ||
|---|---|---|
| 3 | I tested llvm/test/Verifier/matrix-intrinsics.ll. Yes this case is able to be grouped in a single file, but it is not the same to x86_amx test case. [llvm]$ cat test/Verifier/x86_amx.ll
; RUN: not llvm-as %s -o /dev/null 2>&1 | FileCheck %s
define dso_local void @f() {
entry:
  %a.addr = alloca <2 x x86_amx>, align 4
  ret void
}
; CHECK: invalid vector element type
define void @f(x86_amx %A, x86_amx %B) {
entry:
  alloca x86_amx
; CHECK: invalid type for alloca
  ret void
}
[llvm]$ llvm-as test/Verifier/x86_amx.ll
llvm-as: test/Verifier/x86_amx.ll:5:25: error: invalid vector element type
  %a.addr = alloca <2 x x86_amx>, align 4
                        ^
[llvm]$ | |
| llvm/test/Verifier/x86_amx1.ll | ||
|---|---|---|
| 3 | It seems the token test cases are also not able to be grouped.  | |
| llvm/lib/IR/Verifier.cpp | ||
|---|---|---|
| 2462 | Should this be Function rather than Functions? Same for the message it was copied from | |
| llvm/lib/IR/Verifier.cpp | ||
|---|---|---|
| 2462 | Thanks! It's very careful of you. :) | |
Should this be Function rather than Functions? Same for the message it was copied from