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
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
2006-04-19-vmaddfp-crash.ll
2006-05-12-rlwimi-crash.ll
2006-07-07-ComputeMaskedBits.ll
2006-07-19-stwbrx-crash.ll
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
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
2007-03-30-SpillerCrash.ll
2007-04-24-InlineAsm-I-Modifier.ll
2007-04-30-InlineAsmEarlyClobber.ll
2007-05-03-InlineAsm-S-Constraint.ll
2007-05-14-InlineAsmSelectCrash.ll
2007-05-22-tailmerge-3.ll
2007-05-30-dagcombine-miscomp.ll
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
2007-10-21-LocalRegAllocAssert.ll
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
2008-03-05-RegScavengerAssert.ll
2008-03-17-RegScavengerCrash.ll
2008-03-18-RegScavengerAssert.ll
2008-03-24-AddressRegImm.ll
2008-03-24-CoalescerBug.ll
2008-03-26-CoalescerBug.ll
2008-04-10-LiveIntervalCrash.ll
2008-04-16-CoalescerBug.ll
2008-04-23-CoalescerCrash.ll
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
2008-07-17-Fneg.ll
2008-07-24-PPC64-CCBug.ll
2008-09-12-CoalescerBug.ll
2008-10-17-AsmMatchingOperands.ll
2008-10-28-f128-i32.ll
2008-10-28-UnprocessedNode.ll
2008-10-31-PPCF128Libcalls.ll
2008-12-02-LegalizeTypeAssert.ll
2008-12-12-EH.ll
2009-01-16-DeclareISelBug.ll
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
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
2009-11-25-ImpDefBug.ll
2010-02-04-EmptyGlobal.ll
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
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
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
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
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
and_sra.ll
and-branch.ll
and-elim.ll
and-imm.ll
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
Atomics-64.ll
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
big-endian-call-result.ll
big-endian-formal-args.ll Allow remat of LI on PPC. 2012-08-28 02:10:33 +00:00
branch-opt.ll
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
can-lower-ret.ll
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
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
cr1eq-no-extra-moves.ll Eliminate redundant CR moves on PPC32. 2012-08-28 02:10:27 +00:00
cr1eq.ll
cr_spilling.ll
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
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
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
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
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
Frames-large.ll
Frames-leaf.ll
Frames-small.ll
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
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
ispositive.ll
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
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
mulhs.ll
mult-alt-generic-powerpc64.ll
mult-alt-generic-powerpc.ll
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
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
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
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
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
ppc64-zext.ll Optimize zext on PPC64. 2012-08-28 02:10:15 +00:00
ppc440-fp-basic.ll
ppc440-msync.ll
ppc-prologue.ll
ppc-vaarg-agg.ll
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
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
return-val-i128.ll
rlwimi2.ll
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
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
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
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
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
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
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
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
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
vec_br_cmp.ll
vec_buildvector_loadstore.ll
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
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