llvm-6502/test/CodeGen/PowerPC
Bill Schmidt 2d32816a45 [PowerPC] Initial VSX intrinsic support, with min/max for vector double
Now that we have initial support for VSX, we can begin adding
intrinsics for programmer access to VSX instructions.  This patch adds
basic support for VSX intrinsics in general, and tests it by
implementing intrinsics for minimum and maximum for the vector double
data type.

The LLVM portion of this is quite straightforward.  There is a
companion patch for Clang.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220988 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-31 19:19:07 +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
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
2007-09-07-LoadStoreIdxForms.ll
2007-09-08-unaligned.ll [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu 2014-10-19 21:29:21 +00:00
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
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
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
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
2009-09-18-carrybit.ll
2009-11-15-ProcImpDefsBug.ll
2009-11-25-ImpDefBug.ll
2010-02-04-EmptyGlobal.ll
2010-02-12-saveCR.ll
2010-03-09-indirect-call.ll
2010-04-01-MachineCSEBug.ll
2010-05-03-retaddr1.ll
2010-10-11-Fast-Varargs.ll
2010-12-18-PPCStackRefs.ll
2011-12-05-NoSpillDupCR.ll
2011-12-06-SpillAndRestoreCR.ll
2011-12-08-DemandedBitsMiscompile.ll
2012-09-16-TOC-entry-check.ll
2012-10-11-dynalloc.ll
2012-10-12-bitcast.ll [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu 2014-10-19 21:29:21 +00:00
2012-11-16-mischedcall.ll
2013-05-15-preinc-fold.ll
2013-07-01-PHIElimBug.ll
a2-fp-basic.ll
a2q-stackalign.ll
a2q.ll
aa-tbaa.ll
addc.ll
addi-reassoc.ll
addrfuncstr.ll
alias.ll
align.ll
allocate-r0.ll
altivec-ord.ll
and_add.ll
and_sext.ll
and_sra.ll
and-branch.ll
and-elim.ll
and-imm.ll
anon_aggr.ll
ashr-neg1.ll
asm-constraints.ll
asm-dialect.ll
asm-Zy.ll
asym-regclass-copy.ll
atomic-1.ll
atomic-2.ll [Power] Improve the expansion of atomic loads/stores 2014-10-02 22:27:07 +00:00
Atomics-64.ll
atomics-fences.ll [Power] Use lwsync for non-seq_cst fences 2014-10-03 18:04:36 +00:00
atomics-indexed.ll [Power] Improve the expansion of atomic loads/stores 2014-10-02 22:27:07 +00:00
atomics.ll [Power] Improve the expansion of atomic loads/stores 2014-10-02 22:27:07 +00:00
available-externally.ll
bdzlr.ll
big-endian-actual-args.ll
big-endian-call-result.ll
big-endian-formal-args.ll
blockaddress.ll [PowerPC] Load BlockAddress values from the TOC in 64-bit SVR4 code 2014-10-31 10:33:14 +00:00
branch-opt.ll
bswap-load-store.ll
buildvec_canonicalize.ll [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu 2014-10-19 21:29:21 +00:00
bv-pres-v8i1.ll
bv-widen-undef.ll
byval-agg-info.ll
byval-aliased.ll
calls.ll
can-lower-ret.ll
cc.ll
cmp-cmp.ll
coalesce-ext.ll
compare-duplicate.ll
compare-simm.ll
complex-return.ll
constants.ll
copysignl.ll [PPC] Adjust some PowerPC tests to account for presence/absence of VSX 2014-10-17 01:41:22 +00:00
cr1eq-no-extra-moves.ll
cr1eq.ll
cr_spilling.ll
cr-spills.ll
crash.ll
crbit-asm.ll
crbits.ll
crsave.ll
ctr-cleanup.ll
ctrloop-asm.ll
ctrloop-cpsgn.ll
ctrloop-fp64.ll
ctrloop-i64.ll
ctrloop-large-ec.ll
ctrloop-le.ll
ctrloop-lt.ll
ctrloop-ne.ll
ctrloop-reg.ll
ctrloop-s000.ll
ctrloop-sh.ll
ctrloop-sums.ll
ctrloop-udivti3.ll
ctrloops.ll
cttz.ll
darwin-labels.ll
dbg.ll Revert "Revert "DI: Fold constant arguments into a single MDString"" 2014-10-03 20:01:09 +00:00
DbgValueOtherTargets.test
dcbt-sched.ll
delete-node.ll
div-2.ll
dyn-alloca-aligned.ll
early-ret2.ll
early-ret.ll
empty-functions.ll Add back tests for empty function in SPARC and PowerPC. 2014-09-15 22:11:07 +00:00
emptystruct.ll
eqv-andc-orc-nor.ll
extsh.ll
fabs.ll [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu 2014-10-19 21:29:21 +00:00
fast-isel-binary.ll
fast-isel-br-const.ll
fast-isel-call.ll [PowerPC] Temporarily disable VSX for PowerPC fast-isel tests 2014-10-19 20:48:47 +00:00
fast-isel-cmp-imm.ll [PowerPC] Temporarily disable VSX for PowerPC fast-isel tests 2014-10-19 20:48:47 +00:00
fast-isel-conversion-p5.ll
fast-isel-conversion.ll [PowerPC] Temporarily disable VSX for PowerPC fast-isel tests 2014-10-19 20:48:47 +00:00
fast-isel-crash.ll
fast-isel-ext.ll
fast-isel-fold.ll
fast-isel-GEP-coalesce.ll
fast-isel-indirectbr.ll
fast-isel-load-store.ll [PowerPC] Temporarily disable VSX for PowerPC fast-isel tests 2014-10-19 20:48:47 +00:00
fast-isel-redefinition.ll
fast-isel-ret.ll [PowerPC] Temporarily disable VSX for PowerPC fast-isel tests 2014-10-19 20:48:47 +00:00
fast-isel-shifter.ll
fastisel-gep-promote-before-add.ll
fcpsgn.ll [PPC] Adjust some PowerPC tests to account for presence/absence of VSX 2014-10-17 01:41:22 +00:00
float-asmprint.ll
float-to-int.ll
floatPSA.ll
fma-mutate.ll [PowerPC] Avoid VSX FMA mutate when killed product reg = addend reg 2014-10-21 13:02:37 +00:00
fma.ll [PowerPC] Re-enable VSX test line for fma.ll with -mcpu=pwr7 2014-10-19 20:27:56 +00:00
fmaxnum.ll Add minnum / maxnum codegen 2014-10-21 23:01:01 +00:00
fminnum.ll Add minnum / maxnum codegen 2014-10-21 23:01:01 +00:00
fnabs.ll [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu 2014-10-19 21:29:21 +00:00
fneg.ll
fold-li.ll
fold-zero.ll
fp_to_uint.ll [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu 2014-10-19 21:29:21 +00:00
fp-branch.ll [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu 2014-10-19 21:29:21 +00:00
fp-int-fp.ll
fpcopy.ll
frame-size.ll
frameaddr.ll
Frames-alloca.ll
Frames-large.ll
Frames-leaf.ll
Frames-small.ll
frounds.ll
fsel.ll [PPC] Adjust some PowerPC tests to account for presence/absence of VSX 2014-10-17 01:41:22 +00:00
fsl-e500mc.ll
fsl-e5500.ll
fsqrt.ll [PPC] Adjust some PowerPC tests to account for presence/absence of VSX 2014-10-17 01:41:22 +00:00
func-addr.ll
glob-comp-aa-crash.ll
hello-reloc.s
hello.ll
hidden-vis-2.ll
hidden-vis.ll
i1-to-double.ll
i32-to-float.ll
i64_fp_round.ll
i64_fp.ll [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu 2014-10-19 21:29:21 +00:00
i64-to-float.ll
i128-and-beyond.ll
iabs.ll
ifcvt.ll
illegal-element-type.ll
in-asm-f64-reg.ll
indexed-load.ll
indirectbr.ll
inlineasm-copy.ll
inlineasm-i64-reg.ll
int-fp-conv-0.ll
int-fp-conv-1.ll
inverted-bool-compares.ll
isel-rc-nox0.ll
isel.ll
ispositive.ll
itofp128.ll
jaggedstructs.ll
LargeAbsoluteAddr.ll
lbzux.ll
lha.ll
lit.local.cfg
load-constant-addr.ll
load-shift-combine.ll
long-compare.ll
longdbl-truncate.ll
lsa.ll
lsr-postinc-pos.ll
mask64.ll
mature-mc-support.ll
mcm-1.ll
mcm-2.ll
mcm-3.ll
mcm-4.ll [PPC] Adjust some PowerPC tests to account for presence/absence of VSX 2014-10-17 01:41:22 +00:00
mcm-5.ll
mcm-6.ll
mcm-7.ll
mcm-8.ll
mcm-9.ll
mcm-10.ll
mcm-11.ll
mcm-12.ll [PPC] Adjust some PowerPC tests to account for presence/absence of VSX 2014-10-17 01:41:22 +00:00
mcm-default.ll
mcm-obj-2.ll
mcm-obj.ll
mem_update.ll
mem-rr-addr-mode.ll
misched-inorder-latency.ll
misched.ll
mul-neg-power-2.ll
mul-with-overflow.ll
mulhs.ll
mulli64.ll
mult-alt-generic-powerpc64.ll
mult-alt-generic-powerpc.ll
named-reg-alloc-r0.ll
named-reg-alloc-r1-64.ll
named-reg-alloc-r1.ll
named-reg-alloc-r2-64.ll
named-reg-alloc-r2.ll
named-reg-alloc-r13-64.ll
named-reg-alloc-r13.ll
neg.ll
negctr.ll
no-dead-strip.ll
novrsave.ll
optcmp.ll
or-addressing-mode.ll
popcnt.ll
ppc32-i1-vaarg.ll
ppc32-lshrti3.ll
ppc32-pic.ll
ppc32-vacopy.ll
ppc64-32bit-addic.ll
ppc64-abi-extend.ll
ppc64-align-long-double.ll [PPC] Adjust some PowerPC tests to account for presence/absence of VSX 2014-10-17 01:41:22 +00:00
ppc64-altivec-abi.ll
ppc64-byval-align.ll
ppc64-calls.ll
ppc64-crash.ll
ppc64-cyclecounter.ll
ppc64-elf-abi.ll
ppc64-linux-func-size.ll
ppc64-prefetch.ll
ppc64-smallarg.ll
ppc64-toc.ll
ppc64-vaarg-int.ll
ppc64-zext.ll
ppc64le-aggregates.ll
ppc64le-calls.ll
ppc64le-crsave.ll
ppc64le-localentry.ll
ppc64le-smallarg.ll
ppc440-fp-basic.ll
ppc440-msync.ll [PowerPC] Modern Book-E cores support sync 2014-10-02 22:34:22 +00:00
ppc-prologue.ll
ppc-vaarg-agg.ll
ppcf128-1-opt.ll
ppcf128-1.ll Delete -std-compile-opts. 2014-10-16 20:00:02 +00:00
ppcf128-2.ll
ppcf128-3.ll
ppcf128-4.ll
ppcf128-endian.ll
pr3711_widen_bit.ll
pr12757.ll
pr13641.ll
pr13891.ll
pr15031.ll
pr15359.ll
pr15630.ll [Power] Improve the expansion of atomic loads/stores 2014-10-02 22:27:07 +00:00
pr15632.ll
pr16556-2.ll
pr16556.ll
pr16573.ll
pr17168.ll Revert "Revert "DI: Fold constant arguments into a single MDString"" 2014-10-03 20:01:09 +00:00
pr17354.ll
pr18663-2.ll
pr18663.ll
pr20442.ll
private.ll
pwr3-6x.ll
pwr7-gt-nop.ll
quadint-return.ll
r31.ll
recipest.ll [PowerPC] Avoid VSX FMA mutate when killed product reg = addend reg 2014-10-21 13:02:37 +00:00
reg-coalesce-simple.ll
reg-names.ll
reloc-align.ll
remap-crash.ll
remat-imm.ll
resolvefi-basereg.ll
resolvefi-disp.ll
retaddr.ll
return-val-i128.ll
rlwimi2.ll
rlwimi3.ll
rlwimi-and.ll
rlwimi-commute.ll
rlwimi-dyn-and.ll
rlwimi-keep-rsh.ll
rlwimi.ll
rlwinm2.ll
rlwinm.ll
rotl-2.ll
rotl-64.ll
rotl.ll
rounding-ops.ll [PPC] Adjust some PowerPC tests to account for presence/absence of VSX 2014-10-17 01:41:22 +00:00
rs-undef-use.ll
s000-alias-misched.ll
sdag-ppcf128.ll
sections.ll
select_lt0.ll
select-cc.ll
set0-v8i16.ll
setcc_no_zext.ll
seteq-0.ll
shift128.ll
shl_elim.ll
shl_sext.ll
sign_ext_inreg1.ll
sj-ctr-loop.ll
sjlj.ll
small-arguments.ll
spill-nor0.ll
splat-bug.ll
split-index-tc.ll
srl-mask.ll
stack-protector.ll
stack-realign.ll
std-unal-fi.ll
stdux-constuse.ll
stfiwx-2.ll
stfiwx.ll
store-load-fwd.ll
store-update.ll
structsinmem.ll
structsinregs.ll
stubs.ll
stwu8.ll
stwu-gta.ll
stwux.ll
sub-bv-types.ll
subc.ll
subsumes-pred-regs.ll
svr4-redzone.ll
tailcall1-64.ll
tailcall1.ll
tailcallpic1.ll
tls-pic.ll
tls.ll
toc-load-sched-bug.ll
trampoline.ll
unal4-std.ll [PowerPC] Enable use of lxvw4x/stxvw4x in VSX code generation 2014-10-17 15:13:38 +00:00
unal-altivec2.ll
unal-altivec-wint.ll
unal-altivec.ll
unaligned.ll [PowerPC] Enable use of lxvw4x/stxvw4x in VSX code generation 2014-10-17 15:13:38 +00:00
unsafe-math.ll [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu 2014-10-19 21:29:21 +00:00
unwind-dw2-g.ll Revert "Revert "DI: Fold constant arguments into a single MDString"" 2014-10-03 20:01:09 +00:00
unwind-dw2.ll
vaddsplat.ll
varargs-struct-float.ll
varargs.ll
vcmp-fold.ll
vec_auto_constant.ll
vec_br_cmp.ll
vec_buildvector_loadstore.ll
vec_call.ll
vec_cmp.ll
vec_constants.ll
vec_conv.ll
vec_extload.ll
vec_fmuladd.ll
vec_fneg.ll
vec_insert.ll
vec_misaligned.ll [PowerPC] Enable use of lxvw4x/stxvw4x in VSX code generation 2014-10-17 15:13:38 +00:00
vec_mul.ll [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu 2014-10-19 21:29:21 +00:00
vec_perf_shuffle.ll
vec_rounding.ll
vec_select.ll
vec_shift.ll
vec_shuffle_le.ll
vec_shuffle.ll
vec_splat_constant.ll
vec_splat.ll
vec_sqrt.ll
vec_urem_const.ll
vec_vrsave.ll
vec_zero.ll
vec-abi-align.ll [PowerPC] Enable use of lxvw4x/stxvw4x in VSX code generation 2014-10-17 15:13:38 +00:00
vector-identity-shuffle.ll
vector.ll
vperm-instcombine.ll
vperm-lowering.ll
vrsave-spill.ll
vrspill.ll [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu 2014-10-19 21:29:21 +00:00
vsx-args.ll
vsx-fma-m.ll
vsx-minmax.ll [PowerPC] Initial VSX intrinsic support, with min/max for vector double 2014-10-31 19:19:07 +00:00
vsx-p8.ll [PowerPC] Enable use of lxvw4x/stxvw4x in VSX code generation 2014-10-17 15:13:38 +00:00
vsx-self-copy.ll
vsx-spill.ll
vsx.ll [PATCH] Support select-cc for VSFRC when VSX is enabled 2014-10-22 16:58:20 +00:00
vtable-reloc.ll
weak_def_can_be_hidden.ll
zero-not-run.ll