aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/ParallelCG.cpp
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2015-08-30 22:12:50 +0000
committerHal Finkel <hfinkel@anl.gov>2015-08-30 22:12:50 +0000
commita2cdbce6615bd083cc48237135d78ebbefde0b7a (patch)
treef8640a2ba0c68a3f8aa27ef254c69d02951d367c /llvm/lib/CodeGen/ParallelCG.cpp
parentd49455ef9357e9c2cb638746559d0dcc68192e0c (diff)
downloadllvm-a2cdbce6615bd083cc48237135d78ebbefde0b7a.zip
llvm-a2cdbce6615bd083cc48237135d78ebbefde0b7a.tar.gz
llvm-a2cdbce6615bd083cc48237135d78ebbefde0b7a.tar.bz2
[PowerPC] Fixup SELECT_CC (and SETCC) patterns with i1 comparison operands
There were really two problems here. The first was that we had the truth tables for signed i1 comparisons backward. I imagine these are not very common, but if you have: setcc i1 x, y, LT this has the '0 1' and the '1 0' results flipped compared to: setcc i1 x, y, ULT because, in the signed case, '1 0' is really '-1 0', and the answer is not the same as in the unsigned case. The second problem was that we did not have patterns (at all) for the unsigned comparisons select_cc nodes for i1 comparison operands. This was the specific cause of PR24552. These had to be added (and a missing Altivec promotion added as well) to make sure these function for all types. I've added a bunch more test cases for these patterns, and there are a few FIXMEs in the test case regarding code-quality. Fixes PR24552. llvm-svn: 246400
Diffstat (limited to 'llvm/lib/CodeGen/ParallelCG.cpp')
0 files changed, 0 insertions, 0 deletions