llvm-6502/test/CodeGen/PowerPC
Ulrich Weigand f0d0a1681a [APFloat] PR16573: Avoid losing mantissa bits in ppc_fp128 to double truncation
When truncating to a format with fewer mantissa bits, APFloat::convert
will perform a right shift of the mantissa by the difference of the
precision of the two formats.  Usually, this will result in just the
mantissa bits needed for the target format.

One special situation is if the input number is denormal.  In this case,
the right shift may discard significant bits.  This is usually not a
problem, since truncating a denormal usually results in zero (underflow)
after normalization anyway, since the result format's exponent range is
usually smaller than the target format's.

However, there is one case where the latter property does not hold:
when truncating from ppc_fp128 to double.  In particular, truncating
a ppc_fp128 whose first double of the pair is denormal should result
in just that first double, not zero.  The current code however
performs an excessive right shift, resulting in lost result bits.
This is then caught in the APFloat::normalize call performed by
APFloat::convert and causes an assertion failure.

This patch checks for the scenario of truncating a denormal, and
attempts to (possibly partially) replace the initial mantissa
right shift by decrementing the exponent, if doing so will still
result in a valid *target format* exponent.


Index: test/CodeGen/PowerPC/pr16573.ll
===================================================================
--- test/CodeGen/PowerPC/pr16573.ll	(revision 0)
+++ test/CodeGen/PowerPC/pr16573.ll	(revision 0)
@@ -0,0 +1,11 @@
+; RUN: llc < %s | FileCheck %s
+
+target triple = "powerpc64-unknown-linux-gnu"
+
+define double @test() {
+  %1 = fptrunc ppc_fp128 0xM818F2887B9295809800000000032D000 to double
+  ret double %1
+}
+
+; CHECK: .quad -9111018957755033591
+
Index: lib/Support/APFloat.cpp
===================================================================
--- lib/Support/APFloat.cpp	(revision 185817)
+++ lib/Support/APFloat.cpp	(working copy)
@@ -1956,6 +1956,23 @@
     X86SpecialNan = true;
   }
 
+  // If this is a truncation of a denormal number, and the target semantics
+  // has larger exponent range than the source semantics (this can happen
+  // when truncating from PowerPC double-double to double format), the
+  // right shift could lose result mantissa bits.  Adjust exponent instead
+  // of performing excessive shift.
+  if (shift < 0 && isFiniteNonZero()) {
+    int exponentChange = significandMSB() + 1 - fromSemantics.precision;
+    if (exponent + exponentChange < toSemantics.minExponent)
+      exponentChange = toSemantics.minExponent - exponent;
+    if (exponentChange < shift)
+      exponentChange = shift;
+    if (exponentChange < 0) {
+      shift -= exponentChange;
+      exponent += exponentChange;
+    }
+  }
+
   // If this is a truncation, perform the shift before we narrow the storage.
   if (shift < 0 && (isFiniteNonZero() || category==fcNaN))
     lostFraction = shiftRight(significandParts(), oldPartCount, -shift);


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186409 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-16 13:03:25 +00:00
..
2004-11-29-ShrCrash.ll
2004-11-30-shift-crash.ll
2004-11-30-shr-var-crash.ll
2004-12-12-ZeroSizeCommon.ll
2005-01-14-SetSelectCrash.ll
2005-01-14-UndefLong.ll
2005-08-12-rlwimi-crash.ll
2005-09-02-LegalizeDuplicatesCalls.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2005-10-08-ArithmeticRotate.ll
2005-11-30-vastart-crash.ll
2006-01-11-darwin-fp-argument.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
2006-01-20-ShiftPartsCrash.ll
2006-04-01-FloatDoubleExtend.ll
2006-04-05-splat-ish.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2006-04-19-vmaddfp-crash.ll
2006-05-12-rlwimi-crash.ll
2006-07-07-ComputeMaskedBits.ll
2006-07-19-stwbrx-crash.ll Add nounwind to this test. 2009-09-24 20:20:08 +00:00
2006-08-11-RetVector.ll
2006-08-15-SelectionCrash.ll
2006-09-28-shift_64.ll
2006-10-13-Miscompile.ll
2006-10-17-brcc-miscompile.ll
2006-10-17-ppc64-alloca.ll
2006-11-10-DAGCombineMiscompile.ll
2006-11-29-AltivecFPSplat.ll
2006-12-07-LargeAlloca.ll
2006-12-07-SelectCrash.ll
2007-01-04-ArgExtension.ll
2007-01-15-AsmDialect.ll Remove support for using "foo" as symbols instead of %"foo". This is ancient 2011-06-17 06:36:20 +00:00
2007-01-29-lbrx-asm.ll
2007-01-31-InlineAsmAddrMode.ll
2007-02-16-AlignPacked.ll
2007-02-16-InlineAsmNConstraint.ll
2007-02-23-lr-saved-twice.ll
2007-03-24-cntlzd.ll Manually upgrade the test suite to specify the flag to cttz and ctlz. 2011-12-12 11:59:10 +00:00
2007-03-30-SpillerCrash.ll
2007-04-24-InlineAsm-I-Modifier.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2007-04-30-InlineAsmEarlyClobber.ll Don't run RAFast in the optimizing regalloc pipeline. 2012-06-08 23:15:12 +00:00
2007-05-03-InlineAsm-S-Constraint.ll
2007-05-14-InlineAsmSelectCrash.ll
2007-05-22-tailmerge-3.ll Enable tail merging on PPC. 2012-06-09 03:14:50 +00:00
2007-05-30-dagcombine-miscomp.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2007-06-28-BCCISelBug.ll
2007-08-04-CoalescerAssert.ll
2007-09-04-AltivecDST.ll Protect PPC Altivec patterns with a predicate 2013-03-15 13:21:21 +00:00
2007-09-07-LoadStoreIdxForms.ll LocalStackSlotAllocation improvements 2013-04-30 20:04:37 +00:00
2007-09-08-unaligned.ll
2007-09-11-RegCoalescerAssert.ll
2007-09-12-LiveIntervalsAssert.ll
2007-10-16-InlineAsmFrameOffset.ll
2007-10-18-PtrArithmetic.ll
2007-10-21-LocalRegAllocAssert2.ll Don't run RAFast in the optimizing regalloc pipeline. 2012-06-08 23:15:12 +00:00
2007-10-21-LocalRegAllocAssert.ll Don't run RAFast in the optimizing regalloc pipeline. 2012-06-08 23:15:12 +00:00
2007-11-04-CoalescerCrash.ll
2007-11-16-landingpad-split.ll Extend test to check the .cfi instructions. 2013-05-16 14:30:09 +00:00
2007-11-19-VectorSplitting.ll
2008-02-05-LiveIntervalsAssert.ll
2008-02-09-LocalRegAllocAssert.ll Don't run RAFast in the optimizing regalloc pipeline. 2012-06-08 23:15:12 +00:00
2008-03-05-RegScavengerAssert.ll enable PPC register scavenging by default (update tests and remove some FIXMEs) 2011-12-05 17:55:17 +00:00
2008-03-17-RegScavengerCrash.ll enable PPC register scavenging by default (update tests and remove some FIXMEs) 2011-12-05 17:55:17 +00:00
2008-03-18-RegScavengerAssert.ll enable PPC register scavenging by default (update tests and remove some FIXMEs) 2011-12-05 17:55:17 +00:00
2008-03-24-AddressRegImm.ll
2008-03-24-CoalescerBug.ll manually upgrade a bunch of tests to modern syntax, and remove some that 2011-06-17 03:14:27 +00:00
2008-03-26-CoalescerBug.ll
2008-04-10-LiveIntervalCrash.ll
2008-04-16-CoalescerBug.ll
2008-04-23-CoalescerCrash.ll Upgrade syntax of tests using volatile instructions to use 'load volatile' instead of 'volatile load', which is archaic. 2011-11-27 06:54:59 +00:00
2008-05-01-ppc_fp128.ll
2008-06-19-LegalizerCrash.ll
2008-06-21-F128LoadStore.ll
2008-06-23-LiveVariablesCrash.ll
2008-07-10-SplatMiscompile.ll SelectionDAG: Teach FoldConstantArithmetic how to deal with vectors. 2013-02-04 15:19:18 +00:00
2008-07-15-Bswap.ll
2008-07-15-Fabs.ll
2008-07-15-SignExtendInreg.ll manually upgrade a bunch of tests to modern syntax, and remove some that 2011-06-17 03:14:27 +00:00
2008-07-17-Fneg.ll
2008-07-24-PPC64-CCBug.ll
2008-09-12-CoalescerBug.ll
2008-10-17-AsmMatchingOperands.ll test/CodeGen/PowerPC/2008-10-17-AsmMatchingOperands.ll: [PR11218] Mark "REQUIRES: asserts" for now. 2011-10-28 23:11:03 +00:00
2008-10-28-f128-i32.ll
2008-10-28-UnprocessedNode.ll
2008-10-31-PPCF128Libcalls.ll Turn calls to copysignl into an FCOPYSIGN node. Handle FCOPYSIGN nodes 2010-03-14 21:08:40 +00:00
2008-12-02-LegalizeTypeAssert.ll
2008-12-12-EH.ll Add 130690 back. 2011-05-02 15:58:16 +00:00
2009-01-16-DeclareISelBug.ll Remove ancient debug info constructs from test cases, they are not relevant to test case's main objective. 2011-09-14 00:29:50 +00:00
2009-03-17-LSRBug.ll
2009-05-28-LegalizeBRCC.ll
2009-07-16-InlineAsm-M-Operand.ll
2009-08-17-inline-asm-addr-mode-breakage.ll Don't reserve R2 on Darwin/PPC 2013-03-12 15:18:14 +00:00
2009-08-23-linkerprivate.ll Add MCObjectFileInfo and sink the MCSections initialization code from 2011-07-20 05:58:47 +00:00
2009-09-18-carrybit.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
2009-11-15-ProcImpDefsBug.ll For some targets, a copy can use a register multiple times, e.g. ppc. 2009-11-16 05:52:06 +00:00
2009-11-25-ImpDefBug.ll ProcessImplicitDefs should watch out for invalidated iterator and extra implicit operands on copies. 2009-11-25 21:13:39 +00:00
2010-02-04-EmptyGlobal.ll Bill's change in r95336 broke empty aggregates embedded 2010-04-20 06:20:21 +00:00
2010-02-12-saveCR.ll Cleanup PPC CR-spill kill flags and 32- vs. 64-bit instructions 2013-03-28 03:38:16 +00:00
2010-03-09-indirect-call.ll Allow overlaps between virtreg and physreg live ranges. 2012-09-06 18:15:23 +00:00
2010-04-01-MachineCSEBug.ll After trivial coalescing, the MI being visited may have become a copy. Avoid adding it to CSE hash table since copies aren't being considered for CSE and they may be deleted. 2010-04-02 02:21:24 +00:00
2010-05-03-retaddr1.ll Don't reserve R2 on Darwin/PPC 2013-03-12 15:18:14 +00:00
2010-10-11-Fast-Varargs.ll PowerPC varargs functions store live-in registers on the stack. Make sure we use 2010-10-11 20:43:09 +00:00
2010-12-18-PPCStackRefs.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
2011-12-05-NoSpillDupCR.ll TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
2011-12-06-SpillAndRestoreCR.ll TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
2011-12-08-DemandedBitsMiscompile.ll Convert CodeGen/*/*.ll tests to use the new CHECK-LABEL for easier debugging. No functionality change and all tests pass after conversion. 2013-07-13 20:38:47 +00:00
2012-09-16-TOC-entry-check.ll This patch is in preparation for adding medium code model support to the 2012-11-14 23:23:27 +00:00
2012-10-11-dynalloc.ll Do not consider a machine instruction that uses and defines the same 2012-11-13 18:40:58 +00:00
2012-10-12-bitcast.ll llvm/test/CodeGen/PowerPC/2012-10-12-bitcast.ll: Try to fix failure on non-ppc hosts, to add -mattr=+altivec. 2012-10-12 16:01:08 +00:00
2012-11-16-mischedcall.ll Use a full triple for a PPC test case for asm syntax. 2012-11-18 06:21:03 +00:00
2013-05-15-preinc-fold.ll [PowerPC] Use true offset value in "memrix" machine operands 2013-05-16 17:58:02 +00:00
2013-07-01-PHIElimBug.ll Fix PR16508. 2013-07-01 19:42:46 +00:00
a2-fp-basic.ll Rename fp-op fusion option (yet again) for compatibility with GCC option. 2012-06-22 22:31:00 +00:00
a2q-stackalign.ll PPC QPX requires a 32-byte aligned stack 2013-01-30 23:43:27 +00:00
a2q.ll Add definitions for the PPC a2q core marked as having QPX available 2013-01-30 21:17:42 +00:00
addc.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
addi-reassoc.ll
addrfuncstr.ll PPC64: Constant initializers with dynamic relocations go in .data.rel.ro. 2013-05-13 19:34:37 +00:00
align.ll the latest assembler that runs on powerpc 10.4 machines doesn't 2010-09-27 06:44:54 +00:00
allocate-r0.ll Allocate r0 on PPC 2013-03-27 06:52:27 +00:00
altivec-ord.ll PPC: Mark vector CC action for SETO and SETONE as Expand 2013-07-08 20:00:03 +00:00
and_add.ll
and_sext.ll manually upgrade a bunch of tests to modern syntax, and remove some that 2011-06-17 03:14:27 +00:00
and_sra.ll
and-branch.ll
and-elim.ll manually upgrade a bunch of tests to modern syntax, and remove some that 2011-06-17 03:14:27 +00:00
and-imm.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
anon_aggr.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
ashr-neg1.ll Don't crash in SE dealing with ashr x, -1 2013-07-09 18:16:16 +00:00
asm-dialect.ll [PowerPC] Always use "assembler dialect" 1 2013-07-08 20:20:51 +00:00
asm-Zy.ll Add support for the PowerPC-specific inline asm Z constraint and y modifier. 2012-11-05 18:18:42 +00:00
asym-regclass-copy.ll Fix a register-class comparison bug in PPCCTRLoops 2013-03-21 23:23:34 +00:00
atomic-1.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
atomic-2.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
Atomics-32.ll Convert more tests over to the new atomic instructions. 2011-09-26 21:30:17 +00:00
Atomics-64.ll Convert more tests over to the new atomic instructions. 2011-09-26 21:30:17 +00:00
available-externally.ll PPC: MCize most of the darwin PIC emission. 2012-11-24 13:18:25 +00:00
bdzlr.ll Manually remove successors in if conversion when CopyAndPredicateBlock is used 2013-04-10 22:05:25 +00:00
big-endian-actual-args.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
big-endian-call-result.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
big-endian-formal-args.ll Allow remat of LI on PPC. 2012-08-28 02:10:33 +00:00
branch-opt.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
bswap-load-store.ll Specify CPUs on the PPC bswap-load-store test 2013-03-28 20:35:18 +00:00
buildvec_canonicalize.ll test/CodeGen/PowerPC: Add explicit -march=ppc32. 2012-11-30 13:28:31 +00:00
bv-pres-v8i1.ll Fix PromoteIntRes_BUILD_VECTOR crash with i1 vectors 2013-07-08 06:16:58 +00:00
bv-widen-undef.ll WidenVecRes_BUILD_VECTOR must use the first operand's type 2013-07-09 18:55:10 +00:00
calls.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
can-lower-ret.ll Test case for CanLowerReturn fix (r141981) 2011-10-17 04:03:59 +00:00
cmp-cmp.ll
coalesce-ext.ll On PowerPC64, integer return values (as well as arguments) are supposed 2012-11-05 19:39:45 +00:00
compare-duplicate.ll
compare-simm.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
complex-return.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
constants.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
cr1eq-no-extra-moves.ll Eliminate redundant CR moves on PPC32. 2012-08-28 02:10:27 +00:00
cr1eq.ll Set CR1EQ only when lowering vararg floating arguments (not any vararg 2011-08-30 17:04:16 +00:00
cr_spilling.ll Remove the local register allocator. 2010-06-15 21:58:33 +00:00
cr-spills.ll Cleanup PPC CR-spill kill flags and 32- vs. 64-bit instructions 2013-03-28 03:38:16 +00:00
crsave.ll [PowerPC] Use mtocrf when available 2013-07-03 17:59:07 +00:00
ctr-cleanup.ll Cleanup initial-value constants in PPCCTRLoops 2013-03-18 17:40:27 +00:00
ctrloop-asm.ll Check InlineAsm clobbers in PPCCTRLoops 2013-05-18 09:20:39 +00:00
ctrloop-fp64.ll Fix cpu on test CodeGen/PowerPC/ctrloop-fp64.ll 2013-05-16 20:28:05 +00:00
ctrloop-i64.ll Disallow i64 div/rem in PPC32 counter loops 2013-06-07 22:16:19 +00:00
ctrloop-large-ec.ll Don't form PPC CTR loops for over-sized exit counts 2013-07-01 19:34:59 +00:00
ctrloop-le.ll Implement PPC counter loops as a late IR-level pass 2013-05-15 21:37:41 +00:00
ctrloop-lt.ll Implement PPC counter loops as a late IR-level pass 2013-05-15 21:37:41 +00:00
ctrloop-ne.ll Implement PPC counter loops as a late IR-level pass 2013-05-15 21:37:41 +00:00
ctrloop-reg.ll Enable PPC CTR loop formation by default. 2012-06-08 19:19:53 +00:00
ctrloop-s000.ll TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
ctrloop-sums.ll TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
ctrloops.ll Implement PPC counter loops as a late IR-level pass 2013-05-15 21:37:41 +00:00
cttz.ll Fix PowerPC/cttz.ll to specify a cpu (and use FileCheck) 2013-04-01 16:31:56 +00:00
darwin-labels.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
dbg.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
DbgValueOtherTargets.test Remove unnecessary leading comment characters in lit-only file 2013-03-18 22:08:16 +00:00
dcbt-sched.ll Loosen scheduling restrictions on the PPC dcbt intrinsic 2012-12-25 18:51:18 +00:00
delete-node.ll
div-2.ll
early-ret2.ll Manually remove successors in if conversion when CopyAndPredicateBlock is used 2013-04-10 22:05:25 +00:00
early-ret.ll TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
empty-functions.ll Consider this function: 2010-07-16 22:51:10 +00:00
emptystruct.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
eqv-andc-orc-nor.ll add some nounwinds 2010-03-28 07:58:37 +00:00
extsh.ll
fabs.ll Refactor and check "onlyReadsMemory" before optimizing builtins. 2012-08-03 23:29:17 +00:00
float-asmprint.ll Simplify writing floating types to assembly. 2013-01-11 10:36:13 +00:00
float-to-int.ll Fix a bad assert in PPCTargetLowering 2013-04-01 18:42:58 +00:00
floatPSA.ll [PowerPC] Disable fast-isel for existing -O0 tests for PowerPC. 2013-06-13 20:23:34 +00:00
fma.ll Convert CodeGen/*/*.ll tests to use the new CHECK-LABEL for easier debugging. No functionality change and all tests pass after conversion. 2013-07-13 20:38:47 +00:00
fnabs.ll Refactor and check "onlyReadsMemory" before optimizing builtins. 2012-08-03 23:29:17 +00:00
fneg.ll
fold-li.ll
fold-zero.ll Implement PPCInstrInfo::FoldImmediate 2013-04-06 19:30:30 +00:00
fp_to_uint.ll
fp-branch.ll
fp-int-fp.ll
fpcopy.ll
frame-size.ll Allocate the RS spill slot for any PPC function with spills and a large stack frame 2013-03-15 05:06:04 +00:00
frameaddr.ll Correct PPC FRAMEADDR lowering using a pseudo-register 2013-03-21 19:03:19 +00:00
Frames-alloca.ll enable PPC register scavenging by default (update tests and remove some FIXMEs) 2011-12-05 17:55:17 +00:00
Frames-large.ll Cleanup stack/frame register define/kill states. This fixes two bugs: 2011-12-30 00:34:00 +00:00
Frames-leaf.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
Frames-small.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
frounds.ll
fsel.ll Cleanup and improve PPC fsel generation 2013-04-07 22:11:09 +00:00
fsl-e500mc.ll Add PPC Freescale e500mc and e5500 subtargets. 2012-08-28 16:12:39 +00:00
fsl-e5500.ll Add PPC Freescale e500mc and e5500 subtargets. 2012-08-28 16:12:39 +00:00
fsqrt.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
hello.ll
hidden-vis-2.ll
hidden-vis.ll
i32-to-float.ll Add more PPC floating-point conversion instructions 2013-04-01 17:52:07 +00:00
i64_fp_round.ll Add more PPC floating-point conversion instructions 2013-04-01 17:52:07 +00:00
i64_fp.ll
i64-to-float.ll Add more PPC floating-point conversion instructions 2013-04-01 17:52:07 +00:00
i128-and-beyond.ll
iabs.ll Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +00:00
ifcvt.ll Enable early if conversion on PPC 2013-04-05 23:29:01 +00:00
illegal-element-type.ll
in-asm-f64-reg.ll Simplify the testcase a bit. 2012-12-20 17:47:27 +00:00
indirectbr.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
inlineasm-copy.ll Move tie checks into MachineVerifier::visitMachineOperand. 2012-09-04 18:38:28 +00:00
int-fp-conv-0.ll
int-fp-conv-1.ll In various places throughout the code generator, there were special 2012-10-29 18:35:49 +00:00
inverted-bool-compares.ll
isel-rc-nox0.ll Fix register subclass handling in PPCInstrInfo::insertSelect 2013-07-15 20:22:58 +00:00
isel.ll Add support for the PPC isel instruction. 2012-06-22 23:10:08 +00:00
ispositive.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
itofp128.ll
jaggedstructs.ll [PowerPC] Disable fast-isel for existing -O0 tests for PowerPC. 2013-06-13 20:23:34 +00:00
LargeAbsoluteAddr.ll Don't reserve R2 on Darwin/PPC 2013-03-12 15:18:14 +00:00
lbzux.ll TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
lha.ll
lit.local.cfg Include '.test' suffix in target specific lit configs that need it 2013-03-18 20:31:44 +00:00
load-constant-addr.ll
load-shift-combine.ll This patch addresses an incorrect transformation in the DAG combiner. 2013-01-14 22:04:38 +00:00
long-compare.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
longdbl-truncate.ll
lsa.ll TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
lsr-postinc-pos.ll Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
mask64.ll
mcm-1.ll Convert CodeGen/*/*.ll tests to use the new CHECK-LABEL for easier debugging. No functionality change and all tests pass after conversion. 2013-07-13 20:38:47 +00:00
mcm-2.ll Convert CodeGen/*/*.ll tests to use the new CHECK-LABEL for easier debugging. No functionality change and all tests pass after conversion. 2013-07-13 20:38:47 +00:00
mcm-3.ll Convert CodeGen/*/*.ll tests to use the new CHECK-LABEL for easier debugging. No functionality change and all tests pass after conversion. 2013-07-13 20:38:47 +00:00
mcm-4.ll Convert CodeGen/*/*.ll tests to use the new CHECK-LABEL for easier debugging. No functionality change and all tests pass after conversion. 2013-07-13 20:38:47 +00:00
mcm-5.ll Convert CodeGen/*/*.ll tests to use the new CHECK-LABEL for easier debugging. No functionality change and all tests pass after conversion. 2013-07-13 20:38:47 +00:00
mcm-6.ll Convert CodeGen/*/*.ll tests to use the new CHECK-LABEL for easier debugging. No functionality change and all tests pass after conversion. 2013-07-13 20:38:47 +00:00
mcm-7.ll Convert CodeGen/*/*.ll tests to use the new CHECK-LABEL for easier debugging. No functionality change and all tests pass after conversion. 2013-07-13 20:38:47 +00:00
mcm-8.ll Convert CodeGen/*/*.ll tests to use the new CHECK-LABEL for easier debugging. No functionality change and all tests pass after conversion. 2013-07-13 20:38:47 +00:00
mcm-9.ll Convert CodeGen/*/*.ll tests to use the new CHECK-LABEL for easier debugging. No functionality change and all tests pass after conversion. 2013-07-13 20:38:47 +00:00
mcm-10.ll Convert CodeGen/*/*.ll tests to use the new CHECK-LABEL for easier debugging. No functionality change and all tests pass after conversion. 2013-07-13 20:38:47 +00:00
mcm-11.ll Convert CodeGen/*/*.ll tests to use the new CHECK-LABEL for easier debugging. No functionality change and all tests pass after conversion. 2013-07-13 20:38:47 +00:00
mcm-12.ll Convert CodeGen/*/*.ll tests to use the new CHECK-LABEL for easier debugging. No functionality change and all tests pass after conversion. 2013-07-13 20:38:47 +00:00
mcm-default.ll Convert CodeGen/*/*.ll tests to use the new CHECK-LABEL for easier debugging. No functionality change and all tests pass after conversion. 2013-07-13 20:38:47 +00:00
mcm-obj-2.ll Change how we iterate over relocations on ELF. 2013-05-30 03:05:14 +00:00
mcm-obj.ll [PowerPC] Disable fast-isel for existing -O0 tests for PowerPC. 2013-06-13 20:23:34 +00:00
mem_update.ll This patch is in preparation for adding medium code model support to the 2012-11-14 23:23:27 +00:00
mem-rr-addr-mode.ll
misched-inorder-latency.ll Convert CodeGen/*/*.ll tests to use the new CHECK-LABEL for easier debugging. No functionality change and all tests pass after conversion. 2013-07-13 20:38:47 +00:00
misched.ll Fix assertions in updateRegMaskSlots(). 2012-11-09 19:18:49 +00:00
mul-neg-power-2.ll
mul-with-overflow.ll manually upgrade a bunch of tests to modern syntax, and remove some that 2011-06-17 03:14:27 +00:00
mulhs.ll Add r130623 back now that ELF has been fixed to work with -fno-dwarf2-cfi-asm. 2011-05-01 15:44:13 +00:00
mult-alt-generic-powerpc64.ll Inline asm mult-alt constraint tests. 2010-11-02 23:01:44 +00:00
mult-alt-generic-powerpc.ll Inline asm mult-alt constraint tests. 2010-11-02 23:01:44 +00:00
neg.ll
negctr.ll Implement PPC counter loops as a late IR-level pass 2013-05-15 21:37:41 +00:00
no-dead-strip.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
novrsave.ll The PowerPC VRSAVE register has been somewhat of an odd beast since 2012-10-10 20:54:15 +00:00
optcmp.ll PPCInstrInfo::optimizeCompareInstr should not optimize FP compares 2013-05-08 12:16:14 +00:00
or-addressing-mode.ll
popcnt.ll Add the PPC popcntw instruction 2013-04-01 15:58:15 +00:00
ppc64-32bit-addic.ll Don't apply on PPC64 the 32bit ADDIC optimizations as there's no overflow 2011-06-20 15:28:39 +00:00
ppc64-abi-extend.ll On PowerPC64, integer return values (as well as arguments) are supposed 2012-11-05 19:39:45 +00:00
ppc64-align-long-double.ll [PowerPC] Disable fast-isel for existing -O0 tests for PowerPC. 2013-06-13 20:23:34 +00:00
ppc64-calls.ll Convert CodeGen/*/*.ll tests to use the new CHECK-LABEL for easier debugging. No functionality change and all tests pass after conversion. 2013-07-13 20:38:47 +00:00
ppc64-crash.ll Fix a few places where 32bit instructions/registerset were used on PPC64. 2011-06-17 15:21:10 +00:00
ppc64-cyclecounter.ll MFTB on PPC64 should really be encoded using MFSPR. 2012-08-06 21:21:44 +00:00
ppc64-linux-func-size.ll On PPC64 emit the environment pointer. Patch by Adhemerval Zanella. 2012-09-18 16:55:29 +00:00
ppc64-prefetch.ll Enable prefetch generation on PPC64. 2012-04-01 20:08:17 +00:00
ppc64-toc.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
ppc64-vaarg-int.ll Fix small-integer VAARG on SVR4 ABI PPC64. 2012-03-24 03:53:55 +00:00
ppc64-zext.ll Optimize zext on PPC64. 2012-08-28 02:10:15 +00:00
ppc440-fp-basic.ll Rename fp-op fusion option (yet again) for compatibility with GCC option. 2012-06-22 22:31:00 +00:00
ppc440-msync.ll use FileCheck and not grep in new tests 2011-10-17 16:01:41 +00:00
ppc-prologue.ll Add 130690 back. 2011-05-02 15:58:16 +00:00
ppc-vaarg-agg.ll Remove dead SD nodes after the combining pass. Fixes PR12201. 2012-04-16 03:33:22 +00:00
ppcf128-1-opt.ll
ppcf128-1.ll
ppcf128-2.ll
ppcf128-3.ll
ppcf128-4.ll
pr3711_widen_bit.ll
pr12757.ll Allow i32/i64 for 'f' constraint on PowerPC. 2012-10-29 17:49:34 +00:00
pr13641.ll Reserve space for the mandatory traceback fields on PPC64. 2012-08-29 20:22:24 +00:00
pr13891.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
pr15031.ll This patch addresses bug 15031. 2013-01-28 18:36:58 +00:00
pr15359.ll Replace coff-/elf-dump with llvm-readobj 2013-04-12 04:06:46 +00:00
pr15630.ll Fix PR15630: Replace faulty stdcx. with stwcx. 2013-04-02 18:37:08 +00:00
pr15632.ll Fix PR15632: No support for ppcf128 floating-point remainder on PowerPC. 2013-04-03 13:05:44 +00:00
pr16556-2.ll Convert Windows to Unix line endings, no functionality change. 2013-07-13 22:08:55 +00:00
pr16556.ll [PowerPC] Fix PR16556 (handle undef ppcf128 in LowerFP_TO_INT). 2013-07-08 14:22:45 +00:00
pr16573.ll [APFloat] PR16573: Avoid losing mantissa bits in ppc_fp128 to double truncation 2013-07-16 13:03:25 +00:00
private.ll Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
pwr3-6x.ll LLVM enablement for some older PowerPC CPUs 2013-02-01 22:59:51 +00:00
quadint-return.ll Restore reverted test case, this time with REQUIRES: asserts 2013-01-17 19:46:51 +00:00
r31.ll Don't reserve R31 on PPC64 unless the frame pointer is needed 2013-03-19 08:09:38 +00:00
recipest.ll Use new CHECK-DAG support to stabilize CodeGen/PowerPC/recipest.ll 2013-05-16 16:15:18 +00:00
reg-coalesce-simple.ll
reloc-align.ll Index: test/CodeGen/PowerPC/reloc-align.ll 2013-07-01 20:52:27 +00:00
remap-crash.ll Remove invalid assert in DAGTypeLegalizer::RemapValue 2013-07-15 18:57:05 +00:00
remat-imm.ll Allow remat of LI on PPC. 2012-08-28 02:10:33 +00:00
retaddr.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
return-val-i128.ll
rlwimi2.ll add some nounwind's. 2010-11-14 22:22:14 +00:00
rlwimi3.ll Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +00:00
rlwimi-and.ll Fix a PPC rlwimi instruction-selection bug 2013-06-28 20:00:07 +00:00
rlwimi-commute.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
rlwimi-keep-rsh.ll add newlines at the end of files. 2010-04-07 22:53:17 +00:00
rlwimi.ll
rlwinm2.ll
rlwinm.ll
rotl-2.ll
rotl-64.ll
rotl.ll
rounding-ops.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
rs-undef-use.ll RegScavenger should not exclude undef uses 2013-07-11 05:55:57 +00:00
s000-alias-misched.ll TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
sdag-ppcf128.ll Support ppcf128 in SelectionDAG::getConstantFP 2012-12-30 19:03:32 +00:00
sections.ll Be nice to Xcore and the XMOS assembler and avoid quoting section names 2011-03-04 20:03:14 +00:00
select_lt0.ll
select-cc.ll
set0-v8i16.ll PPC: Add some missing V_SET0 patterns 2013-07-11 17:43:32 +00:00
setcc_no_zext.ll
seteq-0.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
shift128.ll
shl_elim.ll
shl_sext.ll
sign_ext_inreg1.ll
sjlj.ll Don't spill PPC VRSAVE on non-Darwin (even in SjLj) 2013-03-27 00:02:20 +00:00
small-arguments.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
stack-protector.ll Fix CodeGen/PowerPC/stack-protector.ll on OpenBSD 2013-06-28 20:18:14 +00:00
std-unal-fi.ll PPC: Allocate RS spill slot for unaligned i64 load/store 2013-07-09 06:34:51 +00:00
stdux-constuse.ll DAGCombiner: Constant folding around pre-increment loads/stores 2013-02-08 21:35:47 +00:00
stfiwx-2.ll Add triple to test/CodeGen/PowerPC/stfiwx-2 2013-04-01 18:18:44 +00:00
stfiwx.ll add some nounwind's. 2010-11-14 22:22:14 +00:00
store-load-fwd.ll
store-update.ll Rewrite pre-increment store patterns to use standard memory operands. 2013-03-19 19:52:04 +00:00
structsinmem.ll [PowerPC] Disable fast-isel for existing -O0 tests for PowerPC. 2013-06-13 20:23:34 +00:00
structsinregs.ll [PowerPC] Disable fast-isel for existing -O0 tests for PowerPC. 2013-06-13 20:23:34 +00:00
stubs.ll Make all darwin ppc stubs local. 2013-04-27 00:43:16 +00:00
stwu8.ll TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
stwu-gta.ll TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
stwux.ll Add support for generating reg+reg preinc stores on PPC. 2012-06-19 02:34:32 +00:00
sub-bv-types.ll DAGCombine tryFoldToZero cannot create illegal types after type legalization 2013-07-09 17:02:45 +00:00
subc.ll
svr4-redzone.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
tailcall1-64.ll
tailcall1.ll
tailcallpic1.ll
tls-2.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
tls-gd-obj.ll Change how we iterate over relocations on ELF. 2013-05-30 03:05:14 +00:00
tls-gd.ll [PowerPC] Revert r185476 and fix up TLS variant kinds 2013-07-09 16:41:09 +00:00
tls-ie-obj.ll Change how we iterate over relocations on ELF. 2013-05-30 03:05:14 +00:00
tls-ie.ll This patch improves the 64-bit PowerPC InitialExec TLS support by providing 2012-12-14 17:02:38 +00:00
tls-ld-2.ll [PowerPC] Revert r185476 and fix up TLS variant kinds 2013-07-09 16:41:09 +00:00
tls-ld-obj.ll Change how we iterate over relocations on ELF. 2013-05-30 03:05:14 +00:00
tls-ld.ll [PowerPC] Revert r185476 and fix up TLS variant kinds 2013-07-09 16:41:09 +00:00
tls.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
trampoline.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
unal4-std.ll Cleanup PPC64 unaligned i64 load/store 2013-03-19 15:23:39 +00:00
unal-altivec.ll Prefer to duplicate PPC Altivec loads when expanding unaligned loads 2013-05-26 18:08:30 +00:00
unaligned.ll Enable unaligned memory access on PPC for scalar types 2013-03-15 15:27:13 +00:00
unsafe-math.ll add some nounwind's. 2010-11-14 22:22:14 +00:00
unwind-dw2-g.ll Cleanup PPC Altivec registers in CSR lists and improve VRSAVE handling 2013-07-02 03:39:34 +00:00
unwind-dw2.ll PPC: Ignore spill/restore requests for VRSAVE (except on Darwin) 2013-06-28 22:29:56 +00:00
vaddsplat.ll Convert CodeGen/*/*.ll tests to use the new CHECK-LABEL for easier debugging. No functionality change and all tests pass after conversion. 2013-07-13 20:38:47 +00:00
varargs-struct-float.ll This patch solves a problem with passing varargs parameters under the PPC64 2012-10-29 21:18:16 +00:00
varargs.ll Convert CodeGen/*/*.ll tests to use the new CHECK-LABEL for easier debugging. No functionality change and all tests pass after conversion. 2013-07-13 20:38:47 +00:00
vcmp-fold.ll
vec_auto_constant.ll Emit correct code when making a ConstantPool entry for a vector 2009-11-10 23:16:41 +00:00
vec_br_cmp.ll
vec_buildvector_loadstore.ll Enable ILP scheduling for all nodes by default on PPC. 2012-06-10 19:32:29 +00:00
vec_call.ll
vec_cmp.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
vec_constants.ll Convert CodeGen/*/*.ll tests to use the new CHECK-LABEL for easier debugging. No functionality change and all tests pass after conversion. 2013-07-13 20:38:47 +00:00
vec_conv.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
vec_extload.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
vec_fmuladd.ll Start using CHECK-LABEL in some tests. 2013-07-12 14:54:12 +00:00
vec_fneg.ll
vec_insert.ll
vec_misaligned.ll
vec_mul.ll Convert CodeGen/*/*.ll tests to use the new CHECK-LABEL for easier debugging. No functionality change and all tests pass after conversion. 2013-07-13 20:38:47 +00:00
vec_perf_shuffle.ll
vec_rounding.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
vec_select.ll PowerPC: Expand VSELECT nodes. 2012-12-19 15:49:14 +00:00
vec_shift.ll
vec_shuffle.ll
vec_splat_constant.ll Adjust isConstantSplat to allow for big-endian targets. 2009-11-13 01:45:18 +00:00
vec_splat.ll
vec_sqrt.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
vec_vrsave.ll
vec_zero.ll
vector-identity-shuffle.ll
vector.ll PPC: Mark vector FREM as Expand by default 2013-07-08 17:30:25 +00:00
vrsave-spill.ll Don't spill PPC VRSAVE on non-Darwin (even in SjLj) 2013-03-27 00:02:20 +00:00
vrspill.ll [PowerPC] Disable fast-isel for existing -O0 tests for PowerPC. 2013-06-13 20:23:34 +00:00
zero-not-run.ll PPCDAGToDAGISel::isRunOfOnes should return false on zero 2013-07-11 16:31:51 +00:00