Issue |
150875
|
Summary |
[GlobalIsel] Assertion when generating code for ptrtoint with vector operands
|
Labels |
llvm:globalisel
|
Assignees |
|
Reporter |
arichardson
|
The following IR when run with `llc -mtriple=x86_64-linux-gnu -global-isel -verify-machineinstrs`
```llvm
define <2 x i64> @ptrtoint_vec(<2 x ptr> %p) {
entry:
%addr = ptrtoint <2 x ptr> %p to <2 x i64>
%ret = xor <2 x i64> %addr, <i64 -1, i64 -1>
ret <2 x i64> %ret
}
```
triggers the following assertion:
> llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp:1428: virtual MachineInstrBuilder llvm::MachineIRBuilder::buildInstr(unsigned int, ArrayRef<DstOp>, ArrayRef<SrcOp>, std::optional<unsigned int>): Assertion `(TypeSize::ScalarTy)SrcOps.size() * SrcOps[0].getLLTTy(*getMRI()).getSizeInBits() == DstOps[0].getLLTTy(*getMRI()).getSizeInBits() && "input scalars do not exactly cover the output vector register"' failed.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs