[PATCH] [PowerPC] PPCBoolRetToInt: Don't translate Constant's operands
authorKai Luo <lkail@cn.ibm.com>
Fri, 28 Aug 2020 01:56:12 +0000 (01:56 +0000)
committerSylvestre Ledru <sylvestre@debian.org>
Thu, 22 Oct 2020 20:29:07 +0000 (21:29 +0100)
commit6d2c92c6e4762261e6a01e6b2ade5f8e5f2f6f09
tree240a9619b38317b2ce45e4bbc4a8494724f20fcd
parent9cc1f0fbde82b23f4cee0fc1405303e10d0160f1
[PATCH] [PowerPC] PPCBoolRetToInt: Don't translate Constant's operands

When collecting `i1` values via `findAllDefs`, ignore Constant's
operands, since Constant's operands might not be `i1`.

Fixes https://bugs.llvm.org/show_bug.cgi?id=46923 which causes ICE
```
llvm-project/llvm/lib/IR/Constants.cpp:1924: static llvm::Constant *llvm::ConstantExpr::getZExt(llvm::Constant *, llvm::Type *, bool): Assertion `C->getType()->getScalarSizeInBits() < Ty->getScalarSizeInBits()&& "SrcTy must be smaller than DestTy for ZExt!"' failed.
```

Differential Revision: https://reviews.llvm.org/D85007

Gbp-Pq: Name PowerPC-PPCBoolRetToInt-Dont-translate-Constants-operands.diff
llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp
llvm/test/CodeGen/PowerPC/pr46923.ll [new file with mode: 0644]