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

Reply via email to