Changes
Summary
- Merging r348444: ------------------------------------------------------------------------ r348444 | matze | 2018-12-05 17:40:23 -0800 (Wed, 05 Dec 2018) | 15 lines AArch64: Fix invalid CCMP emission The code emitting AND-subtrees used to check whether any of the operands was an OR in order to figure out if the result needs to be negated. However the OR could be hidden in further subtrees and not immediately visible. Change the code so that canEmitConjunction() determines whether the result of the generated subtree needs to be negated. Cleanup emission logic to use this. I also changed the code a bit to make all negation decisions early before we actually emit the subtrees. This fixes http://llvm.org/PR39550 Differential Revision: https://reviews.llvm.org/D54137 ------------------------------------------------------------------------
- Merging r346203: ------------------------------------------------------------------------ r346203 | matze | 2018-11-05 19:15:22 -0800 (Mon, 05 Nov 2018) | 7 lines AArch64: Cleanup CCMP code; NFC Cleanup CCMP pattern matching code in preparation for review/bugfix: - Rename `isConjunctionDisjunctionTree()` to `canEmitConjunction()` (it won't accept arbitrary disjunctions and is really about whether we can transform the subtree into a conjunction that we can emit). - Rename `emitConjunctionDisjunctionTree()` to `emitConjunction()` ------------------------------------------------------------------------
Change Type | Path in Repository | Path in Workspace |
---|---|---|
![]() | /llvm/branches/release_70/lib/Target/AArch64/AArch64ISelLowering.cpp (diff) | llvm.src/lib/Target/AArch64/AArch64ISelLowering.cpp |
![]() | /llvm/branches/release_70/test/CodeGen/AArch64/arm64-ccmp.ll (diff) | llvm.src/test/CodeGen/AArch64/arm64-ccmp.ll |
Change Type | Path in Repository | Path in Workspace |
![]() | /llvm/branches/release_70/lib/Target/AArch64/AArch64ISelLowering.cpp (diff) | llvm.src/lib/Target/AArch64/AArch64ISelLowering.cpp |