forked from OSchip/llvm-project
[X86] Disable fast-isel call lowering for functions with vXi1 arguments on avx512.
This fails an assert because the type is marked in the calling convention td file as needing promotion, but the code doesn't know how to do it. It also much more complicated because we try to pass these in xmm/ymm/zmm registers. As of a few weeks ago we do this promotion from getRegisterTypeForCallingConv before the td file generated code gets involved.
This commit is contained in:
parent
90a2fbdb04
commit
85726bbcba
|
@ -3289,7 +3289,8 @@ bool X86FastISel::fastLowerCall(CallLoweringInfo &CLI) {
|
|||
ResultReg =
|
||||
fastEmit_ri(VT, VT, ISD::AND, ResultReg, hasTrivialKill(PrevVal), 1);
|
||||
} else {
|
||||
if (!isTypeLegal(Val->getType(), VT))
|
||||
if (!isTypeLegal(Val->getType(), VT) ||
|
||||
(VT.isVector() && VT.getVectorElementType() == MVT::i1))
|
||||
return false;
|
||||
ResultReg = getRegForValue(Val);
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue