summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/lang/cpp/overloaded-functions/TestOverloadedFunctions.py
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2018-03-15 23:04:11 +0000
committerCraig Topper <craig.topper@intel.com>2018-03-15 23:04:11 +0000
commit1b8cf49704150d0617158dda6eec0ccba8e80423 (patch)
treecf2e1a10588559455c01fe94c4ac424bdab5fac6 /lldb/packages/Python/lldbsuite/test/lang/cpp/overloaded-functions/TestOverloadedFunctions.py
parent389480999746fe26858b709df9ec7ee3837d82b8 (diff)
downloadbcm5719-llvm-1b8cf49704150d0617158dda6eec0ccba8e80423.tar.gz
bcm5719-llvm-1b8cf49704150d0617158dda6eec0ccba8e80423.zip
[SelectionDAG][ARM][X86] Teach PromoteIntRes_SETCC to do a better job picking the result type for the setcc.
Previously if getSetccResultType returned an illegal type we just fell back to using the default promoted type. This appears to have been to handle the case where for vectors getSetccResultType returns the input type, but the input type itself isn't legal and will need to be promoted. Without the legality check we would never reach a legal type. But just picking the promoted type to be the setcc type can create strange setccs where the result type is 128 bits and the operand type is 256 bits. If for example the result type was promoted to v8i16 from v8i1, but the input type was promoted from v8i23 to v8i32. We currently handle this with custom lowering code in X86. This legality check also caused us reject the getSetccResultType when the input type needed to be widened or split. Even though that result wouldn't have caused legalization to get stuck. This patch tries to fix this by detecting the getSetccResultType needs to be promoted. If its input type also needs to be promoted we'll try a ask for a new setcc result type based on its eventual promoted value. Otherwise we fall back to default type to promote to. For any other illegal values we might get back from the initial call to getSetccResultType we just keep and allow it to be re-legalized later via splitting or widening or scalarizing. llvm-svn: 327683
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lang/cpp/overloaded-functions/TestOverloadedFunctions.py')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud