summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/python_api/section
diff options
context:
space:
mode:
authorKyle Butt <kyle+llvm@iteratee.net>2016-02-03 01:41:09 +0000
committerKyle Butt <kyle+llvm@iteratee.net>2016-02-03 01:41:09 +0000
commitd62d8b771d3cc51b0b9e095011c7a1a6f83ce477 (patch)
tree0b4dcccce8ae6c9d0c00306bd34d23f91e92e3cc /lldb/packages/Python/lldbsuite/test/python_api/section
parent4a38201176fc8e8822fbdace03bb98ee75cac82a (diff)
downloadbcm5719-llvm-d62d8b771d3cc51b0b9e095011c7a1a6f83ce477.tar.gz
bcm5719-llvm-d62d8b771d3cc51b0b9e095011c7a1a6f83ce477.zip
Codegen: [PPC] Fix PPCVSXFMAMutate to handle duplicates.
The purpose of PPCVSXFMAMutate is to elide copies by changing FMA forms on PPC. %vreg6<def> = COPY %vreg96 %vreg6<def,tied1> = XSMADDASP %vreg6<tied0>, %vreg5<kill>, %vreg7 ;v6 = v6 + v5 * v7 is replaced by %vreg5<def,tied1> = XSMADDMSP %vreg5<tied0>, %vreg7, %vreg96 ;v5 = v5 * v7 + v96 This was broken in the case where the target register was also used as a multiplicand. Fix this case by checking for it and replacing both uses with the copied register. %vreg6<def> = COPY %vreg96 %vreg6<def,tied1> = XSMADDASP %vreg6<tied0>, %vreg5<kill>, %vreg6 ;v6 = v6 + v5 * v6 is replaced by %vreg5<def,tied1> = XSMADDMSP %vreg5<tied0>, %vreg96, %vreg96 ;v5 = v5 * v96 + v96 llvm-svn: 259617
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/section')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud