llvm-6502/test/CodeGen/PowerPC
Eli Friedman db3c169f3a Add some generic expansion logic for SMULO and UMULO. Fixes UMULO
support for x86, and UMULO/SMULO for many architectures, including PPC 
(PR4201), ARM, and Cell. The resulting expansion isn't perfect, but it's
not bad.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73477 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-16 06:58:29 +00:00
..
2004-11-29-ShrCrash.ll upgrade this test 2008-03-09 00:32:10 +00:00
2004-11-30-shift-crash.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2004-11-30-shr-var-crash.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2004-12-12-ZeroSizeCommon.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2005-01-14-SetSelectCrash.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2005-01-14-UndefLong.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2005-08-12-rlwimi-crash.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2005-09-02-LegalizeDuplicatesCalls.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2005-10-08-ArithmeticRotate.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2005-11-30-vastart-crash.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-01-11-darwin-fp-argument.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
2006-01-20-ShiftPartsCrash.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-04-01-FloatDoubleExtend.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-04-05-splat-ish.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-04-19-vmaddfp-crash.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-05-12-rlwimi-crash.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-07-07-ComputeMaskedBits.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-07-19-stwbrx-crash.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-08-11-RetVector.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-08-15-SelectionCrash.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-09-28-shift_64.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-10-11-combiner-aa-regression.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
2006-10-13-Miscompile.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-10-17-brcc-miscompile.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-10-17-ppc64-alloca.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-11-10-DAGCombineMiscompile.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-11-29-AltivecFPSplat.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-12-07-LargeAlloca.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-12-07-SelectCrash.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
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 Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
2007-04-24-InlineAsm-I-Modifier.ll Implement a signficant optimization for inline asm: 2008-04-27 00:37:18 +00:00
2007-04-30-InlineAsmEarlyClobber.ll Fix PR3149. If an early clobber def is a physical register and it is tied to an input operand, it effectively extends the live range of the physical register. Currently we do not have a good way to represent this. 2008-12-19 20:58:01 +00:00
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
2007-09-07-LoadStoreIdxForms.ll
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 this test should not run opt -std-compile-opts, it should run 2009-01-09 05:32:00 +00:00
2007-11-19-VectorSplitting.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
2008-01-25-EmptyFunction.ll
2008-02-05-LiveIntervalsAssert.ll
2008-02-09-LocalRegAllocAssert.ll
2008-03-05-RegScavengerAssert.ll Update llc flags for PPC register scavenger. 2008-03-10 22:59:08 +00:00
2008-03-06-KillInfo.ll Update llc flags for PPC register scavenger. 2008-03-10 22:59:08 +00:00
2008-03-17-RegScavengerCrash.ll Rewrite code that propagate isDead information after a dead copy is coalesced. This remove some ugly spaghetti code and fixed a number of subtle bugs. 2008-03-18 08:26:47 +00:00
2008-03-18-RegScavengerAssert.ll Fix live variables issues: 2008-03-19 00:52:20 +00:00
2008-03-24-AddressRegImm.ll Use the bit size of the operand instead of the hard-coded 32 to generate the 2008-03-24 23:16:37 +00:00
2008-03-24-CoalescerBug.ll lastRegisterUse() should ignore identity copies. Those will be erased. 2008-03-25 02:02:19 +00:00
2008-03-26-CoalescerBug.ll One more coalescer fix wrt deadness propagation. 2008-03-26 20:15:49 +00:00
2008-04-10-LiveIntervalCrash.ll A copy instruction may use a register multiple times on some targets. Change them all. 2008-04-10 18:38:47 +00:00
2008-04-16-CoalescerBug.ll After reading memory that's already freed. 2008-04-16 20:24:25 +00:00
2008-04-23-CoalescerCrash.ll New test. 2008-04-24 20:01:58 +00:00
2008-05-01-ppc_fp128.ll Adding testcase. 2008-05-01 18:41:09 +00:00
2008-06-19-LegalizerCrash.ll ISD::UNDEF should be expanded recursively / iteratively. 2008-06-19 22:01:11 +00:00
2008-06-21-F128LoadStore.ll Support for load/store of expanded float types. I 2008-06-21 17:00:47 +00:00
2008-06-23-LiveVariablesCrash.ll This situation can occur: 2008-06-23 23:41:14 +00:00
2008-07-10-SplatMiscompile.ll Fix an altivec constant miscompilation that Duncan found through 2008-07-10 16:33:38 +00:00
2008-07-15-Bswap.ll LegalizeTypes support for promotion of bswap. 2008-07-15 10:18:22 +00:00
2008-07-15-Fabs.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
2008-07-15-SignExtendInreg.ll LegalizeTypes support for promotion of SIGN_EXTEND_INREG. 2008-07-15 10:14:24 +00:00
2008-07-17-Fneg.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
2008-07-24-PPC64-CCBug.ll Fix a catastrophic PPC64 ABI bug: i32 operands which are passed in memory (all of the parameter registers are used) are loaded from sp offsets that were off by 4. 2008-07-24 08:17:07 +00:00
2008-09-12-CoalescerBug.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
2008-10-17-AsmMatchingOperands.ll We have decided not to support inline asm where an output operand with a matching input operand with incompatible type (i.e. either one is a floating point and the other is an integer or the sizes of the types differ). SelectionDAGBuild will catch these and exit with an error. 2008-12-16 18:21:39 +00:00
2008-10-28-f128-i32.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
2008-10-28-UnprocessedNode.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
2008-10-30-IllegalShift.ll Testcase for PR2986. 2008-10-30 20:34:30 +00:00
2008-10-31-PPCF128Libcalls.ll Add a bunch of libcalls for ppcf128 that were somehow 2008-10-31 14:06:52 +00:00
2008-12-02-LegalizeTypeAssert.ll Remove a (what appears to be) overly strict assertion. Here is what happened: 2008-12-02 21:57:09 +00:00
2008-12-12-EH.ll rename a file to follow naming conventions. 2009-01-02 01:52:35 +00:00
2009-01-16-DeclareISelBug.ll Fix PPC ISD::Declare isel and eliminate the need for PPCTargetLowering::LowerGlobalAddress to check if isVerifiedDebugInfoDesc() is true. Given the recent changes, it would falsely return true for a lot of GlobalAddressSDNode's. 2009-01-16 22:57:32 +00:00
2009-03-17-LSRBug.ll Add another test case for r64440. 2009-03-18 02:43:01 +00:00
2009-05-28-LegalizeBRCC.ll Add explicit test for PR4280. 2009-05-28 21:04:35 +00:00
addc.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
addi-reassoc.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
align.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
and_add.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
and_sext.ll
and_sra.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
and-branch.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
and-elim.ll
and-imm.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
atomic-1.ll Adjust grep's for new code sequence. 2008-08-25 18:53:58 +00:00
atomic-2.ll Adjust grep's for new code sequence. 2008-08-25 18:53:58 +00:00
Atomics-32.ll Testcases for ppc atomics. 2008-08-30 00:54:31 +00:00
Atomics-64.ll Testcases for ppc atomics. 2008-08-30 00:54:31 +00:00
big-endian-actual-args.ll
big-endian-call-result.ll
big-endian-formal-args.ll
branch-opt.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
bswap-load-store.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
buildvec_canonicalize.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
calls.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
cmp-cmp.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
compare-duplicate.ll
compare-simm.ll
constants.ll
cr_spilling.ll Second attempt: 2009-04-29 00:15:41 +00:00
cttz.ll
darwin-labels.ll
delete-node.ll Make ISel ignore dead nodes. The DAGCombiner normally eliminates 2008-11-05 22:56:47 +00:00
dg.exp sabre brings to my attention that the 'tr' suffix is also obsolete 2008-05-20 21:00:03 +00:00
div-2.ll
eqv-andc-orc-nor.ll
extsh.ll
fabs.ll
fma.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
fnabs.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
fneg.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
fold-li.ll Remove -unwind-tables-optional everywhere, since 2008-04-14 17:56:54 +00:00
fp_to_uint.ll
fp-branch.ll
fp-int-fp.ll
fpcopy.ll
Frames-alloca.ll Update llc flags for PPC register scavenger. 2008-03-10 22:59:08 +00:00
Frames-large.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
Frames-leaf.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
Frames-small.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
frounds.ll Really feed llvm-as with the testcase, do not let it read from stdin. This fixes the hangs seen on solaris10. 2008-02-26 13:37:13 +00:00
fsqrt.ll
hello.ll
hidden-vis-2.ll Re-did 60519. It turns out Darwin's handling of hidden visibility symbols are a bit more complicate than I expected. Both declarations and weak definitions still need a stub indirection. However, the stubs are in data section and they contain the addresses of the actual symbols. 2008-12-05 01:06:39 +00:00
hidden-vis.ll Re-did 60519. It turns out Darwin's handling of hidden visibility symbols are a bit more complicate than I expected. Both declarations and weak definitions still need a stub indirection. However, the stubs are in data section and they contain the addresses of the actual symbols. 2008-12-05 01:06:39 +00:00
i64_fp.ll
i128-and-beyond.ll Split this test and move it into target-specific directories. 2008-10-01 19:46:30 +00:00
iabs.ll
illegal-element-type.ll
inlineasm-copy.ll
int-fp-conv-0.ll Fix this test so that it doesn't spuriously fail due to some 2009-03-27 16:17:22 +00:00
int-fp-conv-1.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
invalid-memcpy.ll
inverted-bool-compares.ll
ispositive.ll
itofp128.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
LargeAbsoluteAddr.ll Add a new function, ReplaceAllUsesOfValuesWith, which handles bulk 2008-07-17 19:10:17 +00:00
lha.ll
load-constant-addr.ll
long-compare.ll
longdbl-truncate.ll
mask64.ll Don't hard-code the mask size to be 32, which is incorrect on ppc64 2008-02-27 21:12:32 +00:00
mem_update.ll
mem-rr-addr-mode.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
mul-neg-power-2.ll
mul-with-overflow.ll Add some generic expansion logic for SMULO and UMULO. Fixes UMULO 2009-06-16 06:58:29 +00:00
mulhs.ll
multiple-return-values.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
neg.ll
no-dead-strip.ll
or-addressing-mode.ll
ppcf128-1-opt.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
ppcf128-1.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
ppcf128-2.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
ppcf128-3.ll Make conversions of i8/i16 to ppcf128 work. 2008-03-18 17:28:38 +00:00
ppcf128-4.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
pr3711_widen_bit.ll Added missing support for widening when splitting an unary op (PR3683) 2009-03-18 06:24:04 +00:00
private.ll Private linkage support for PPC / Darwin. 2009-01-25 06:32:01 +00:00
reg-coalesce-simple.ll Remove -unwind-tables-optional everywhere, since 2008-04-14 17:56:54 +00:00
retaddr.ll
return-val-i128.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
rlwimi2.ll
rlwimi3.ll
rlwimi-commute.ll Evan implemented this. 2008-03-02 17:56:29 +00:00
rlwimi.ll
rlwinm2.ll
rlwinm.ll
rotl-2.ll Remove -unwind-tables-optional everywhere, since 2008-04-14 17:56:54 +00:00
rotl-64.ll
rotl.ll
select_lt0.ll
select-cc.ll Fix PR3011: LegalizeTypes support for scalarizing 2008-11-04 17:31:08 +00:00
setcc_no_zext.ll
seteq-0.ll
shift128.ll Add support for lowering 128-bit shifts on ppc64. 2008-03-07 20:36:53 +00:00
shl_elim.ll
shl_sext.ll
sign_ext_inreg1.ll
small-arguments.ll
stfiwx-2.ll
stfiwx.ll
store-load-fwd.ll
subc.ll
tailcall1-64.ll Tail call optimization improvements: 2008-04-30 09:16:33 +00:00
tailcall1.ll Tail call optimization improvements: 2008-04-30 09:16:33 +00:00
tailcallpic1.ll Tail call optimization improvements: 2008-04-30 09:16:33 +00:00
trampoline.ll Add trampoline support to PPC. GCC simply calls the "__trampoline_setup" 2008-09-17 00:30:57 +00:00
unsafe-math.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
vcmp-fold.ll
vec_br_cmp.ll
vec_call.ll
vec_constants.ll
vec_fneg.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
vec_insert.ll
vec_misaligned.ll New test for misaligned Altivec laod/store. 2008-02-27 23:14:50 +00:00
vec_mul.ll
vec_perf_shuffle.ll
vec_shift.ll PR3628: Add patterns to match SHL/SRL/SRA to the corresponding Altivec 2009-06-07 01:07:55 +00:00
vec_shuffle.ll
vec_splat.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
vec_vrsave.ll
vec_zero.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
vector-identity-shuffle.ll
vector.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00