[llvm] [Scalarizer][DirectX] support structs return types (PR #111569)
Mariusz Sikora via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 24 10:57:57 PDT 2024
mariusz-sikora-at-amd wrote:
Hi @farzonl I'm having problems when compiling:
```
define <3 x i32> @test_(<3 x i32> %a, <3 x i32> %b) {
%r = call { <3 x i32>, <3 x i1> } @llvm.uadd.with.overflow.v3i32(<3 x i32> %b, <3 x i32> %b)
%el = extractvalue { <3 x i32>, <3 x i1> } %r, 0
ret <3 x i32> %el
}
```
```
./build/bin/opt -passes='function(scalarizer)' ./build/test_fail.ll -S
opt: ./llvm-project/llvm/include/llvm/Support/Casting.h:578: decltype(auto) llvm::cast(From *) [To = llvm::VectorType, From = llvm::Type]: Assertion `isa<To>(Val) && "cast<Ty>() argument of incompatible type!"' failed.
```
Are you planning to add `Intrinsic::uadd_with_overflow` to `ScalarizerVisitor::isTriviallyScalarizable` ?
https://github.com/llvm/llvm-project/pull/111569
More information about the llvm-commits
mailing list