Add the following 64-bit vector integer arithmetic instructions added in POWER8:
- vaddudm
- vsubudm
- vmulesw
- vmulosw
- vmuleuw
- vmulouw
- vmuluwm
- vmaxsd
- vmaxud
- vminsd
- vminud
- vcmpequd
- vcmpequd.
- vcmpgtsd
- vcmpgtsd.
- vcmpgtud
- vcmpgtud.
- vrld
- vsld
- vsrd
- vsrad
Paths
| Differential D7959
[PPC64] Add 64-bit Vector Integer Arithmetic Instructions ClosedPublic Authored by kbarton on Feb 27 2015, 1:40 PM.
Details
Diff Detail Event Timelinekbarton updated this object. Comment Actions I have a corresponding patch to Clang to add builtins for most of these instructions. However, it is dependant on D7235 (add support for vector bool long long), which hasn't been completed yet. I'm not sure which solution is preferred. Comment Actions
Please finish D7235, and then add the builtins as follow-up work.
Comment Actions Looks like you added some vector compares as well. That should be called out in the description. Additional comments inline.
kbarton updated this object. kbarton edited edge metadata. Comment ActionsAdded Subtarget parameter to the interface to getAltivecCompareInfo to test whether the doubleword compare intrinsics are available on the current subtarget. Updated README_ALTIVEC.txt with a FIXME from the vec_add_sub_doubleword.ll testcase. Comment Actions Other than style issues called out inline, and the open question about PPCSchedule.td for Hal, this LGTM.
wschmidt edited edge metadata. Comment ActionsLGTM. Go ahead with the PPCSchedule.td change for now. Please discuss with Hal when he returns from his travel. Thanks! This revision is now accepted and ready to land.Mar 3 2015, 10:05 AM Comment Actions Committed revision 231115.
Revision Contents
Diff 21110 include/llvm/IR/IntrinsicsPowerPC.td
lib/Target/PowerPC/PPCISelDAGToDAG.cpp
lib/Target/PowerPC/PPCISelLowering.cpp
lib/Target/PowerPC/PPCInstrAltivec.td
lib/Target/PowerPC/PPCSchedule.td
lib/Target/PowerPC/README_ALTIVEC.txt
test/CodeGen/PowerPC/vec_add_sub_doubleword.ll
test/CodeGen/PowerPC/vec_cmpd.ll
test/CodeGen/PowerPC/vec_minmax.ll
test/CodeGen/PowerPC/vec_mul_even_odd.ll
test/CodeGen/PowerPC/vec_rotate_shift.ll
test/MC/Disassembler/PowerPC/ppc64-encoding-vmx.txt
test/MC/PowerPC/ppc64-encoding-vmx.s
|
You and Nemanja will have a conflict here -- first to commit wins. ;)