New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cannot select SystemZISD::GET_CCMASK #59054
Comments
This starts out as
which is a bit special in that the carry output of the After legalization we have:
Now several platform optimizations apply. The result of the first I think there are two options to fix this. Either, |
Aha - so the truncate is actually also produced by the SystemZ backend. I thought it might be a little better to keep the handling of GET_CCMASK inside combineGET_CCMASK(), so I chose to handle the truncate there. IIUC, the operands will always be constant 0 or 1, which are the values I check for, which should always be safe to truncate. Proposed patch: https://reviews.llvm.org/D138324 |
(Bisected and seems to be present at least one year back)
testcase.tar.gz
llc ./tc_GET_CCMASK.ll
LLVM ERROR: Cannot select: t50: i32 = SystemZISD::GET_CCMASK t72, Constant:i32<15>, Constant:i32<3>
=>
It seems to me that the inserted truncate node is not handled - maybe it should either never be emitted or it should be recognized in combineGET_CCMASK().
The text was updated successfully, but these errors were encountered: