1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-23 13:02:52 +02:00
llvm-mirror/test/CodeGen
Roger Ferrer Ibanez d72dcacf0e [ARM] Use ADDCARRY / SUBCARRY
This patch:

- makes nodes ISD::ADDCARRY and ISD::SUBCARRY legal for i32
- lowering is done by first converting the boolean value into the carry flag
  using (_, C) <- (ARMISD::ADDC R, -1) and converted back to an integer value
  using (R, _) <- (ARMISD::ADDE 0, 0, C). An ARMISD::ADDE between the two
  operations does the actual addition.
- for subtraction, given that ISD::SUBCARRY second result is actually a
  borrow, we need to invert the value of the second operand and result before
  and after using ARMISD::SUBE. We need to invert the carry result of
  ARMISD::SUBE to preserve the semantics.
- given that the generic combiner may lower ISD::ADDCARRY and
  ISD::SUBCARRY into ISD::UADDO and ISD::USUBO we need to update their lowering
  as well otherwise i64 operations now would require branches. This implies
  updating the corresponding test for unsigned.
- add new combiner to remove the redundant conversions from/to carry flags
  to/from boolean values (ARMISD::ADDC (ARMISD::ADDE 0, 0, C), -1) -> C

Differential Revision: https://reviews.llvm.org/D35192

llvm-svn: 309923
2017-08-03 07:45:10 +00:00
..
AArch64 [AArch64] Add Exynos M2 feature test (NFC) 2017-08-02 18:55:34 +00:00
AMDGPU AMDGPU/GlobalISel: Mark 32-bit G_FMUL as legal 2017-08-02 22:56:30 +00:00
ARM [ARM] Use ADDCARRY / SUBCARRY 2017-08-03 07:45:10 +00:00
AVR [AVR] Remove the instrumentation pass 2017-07-23 23:39:11 +00:00
BPF DAG: Undo and->or combine with FrameIndexes 2017-08-02 00:43:42 +00:00
Generic [TargetPassConfig] Feature generic options to setup start/stop-after/before 2017-07-31 18:24:07 +00:00
Hexagon [Hexagon] Convert HVX vector constants of i1 to i8 2017-08-01 13:12:53 +00:00
Inputs
Lanai
Mips [Mips] Fix for BBIT octeon instruction 2017-08-01 13:42:45 +00:00
MIR [MIR] Print target-specific constant pools 2017-08-02 11:09:30 +00:00
MSP430
Nios2
NVPTX
PowerPC [Power9] Exploit vector absolute difference instructions on Power 9 2017-08-02 20:07:21 +00:00
SPARC
SystemZ [SystemZ] test update 2017-07-21 13:14:17 +00:00
Thumb
Thumb2 ARM: Do not use llc -march in tests. 2017-08-01 22:20:49 +00:00
WebAssembly
WinEH
X86 X86: Do not use llc -march in tests. 2017-08-02 00:28:10 +00:00
XCore Delete Default and JITDefault code models 2017-08-03 02:16:21 +00:00