[PATCH] D71341: [VE,#4] Target vector intrinsics
Simon Moll via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Dec 11 03:13:34 PST 2019
simoll created this revision.
Herald added subscribers: llvm-commits, openmp-commits, libcxx-commits, Sanitizers, cfe-commits, jdoerfert, s.egerton, jfb, arphaman, dexonsmith, christof, simoncook, fedor.sergeev, aheejin, hiraditya, krytarowski, mgorny, dschuff, qcolombet.
Herald added a reviewer: jdoerfert.
Herald added projects: clang, Sanitizers, libc++, OpenMP, LLVM.
This is patch #4 in the patch series for the VE backend for NEC-SX Aurora.
This patch builds on the runtime library patch of https://reviews.llvm.org/D71340
This patch implements vel intrinsics for SX-Aurora. These target-specific vector intrinsics are documented here <https://sx-aurora-dev.github.io/velintrin.html>.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D71341
Files:
clang/include/clang/Basic/BuiltinsVE.def
clang/include/clang/Basic/BuiltinsVEVL.gen.def
clang/include/clang/Basic/TargetBuiltins.h
clang/include/clang/Driver/Options.td
clang/include/clang/module.modulemap
clang/lib/Basic/CMakeLists.txt
clang/lib/Basic/Targets.cpp
clang/lib/Basic/Targets/VE.cpp
clang/lib/Basic/Targets/VE.h
clang/lib/CodeGen/TargetInfo.cpp
clang/lib/Driver/CMakeLists.txt
clang/lib/Driver/Driver.cpp
clang/lib/Driver/ToolChains/Arch/VE.cpp
clang/lib/Driver/ToolChains/Arch/VE.h
clang/lib/Driver/ToolChains/Clang.cpp
clang/lib/Driver/ToolChains/Clang.h
clang/lib/Driver/ToolChains/CommonArgs.cpp
clang/lib/Driver/ToolChains/Gnu.cpp
clang/lib/Driver/ToolChains/Linux.cpp
clang/lib/Driver/ToolChains/VE.cpp
clang/lib/Driver/ToolChains/VE.h
clang/lib/Frontend/CompilerInvocation.cpp
clang/lib/Headers/CMakeLists.txt
clang/lib/Headers/velintrin.h
clang/lib/Headers/velintrin_approx.h
clang/lib/Headers/velintrin_gen.h
clang/test/Driver/ve-features.c
compiler-rt/cmake/Modules/CompilerRTUtils.cmake
compiler-rt/cmake/base-config-ix.cmake
compiler-rt/cmake/builtin-config-ix.cmake
compiler-rt/cmake/config-ix.cmake
compiler-rt/lib/builtins/CMakeLists.txt
compiler-rt/lib/builtins/ve/llvm_grow_stack.S
libcxx/src/filesystem/operations.cpp
libcxxabi/cmake/config-ix.cmake
libunwind/include/__libunwind_config.h
libunwind/include/libunwind.h
libunwind/src/Registers.hpp
libunwind/src/Unwind-sjlj.c
libunwind/src/libunwind.cpp
llvm/CODE_OWNERS.TXT
llvm/docs/VE/VectorLength.rst
llvm/include/llvm/ADT/Triple.h
llvm/include/llvm/BinaryFormat/ELF.h
llvm/include/llvm/CodeGen/Passes.h
llvm/include/llvm/CodeGen/ValueTypes.h
llvm/include/llvm/CodeGen/ValueTypes.td
llvm/include/llvm/IR/CallingConv.h
llvm/include/llvm/IR/Intrinsics.td
llvm/include/llvm/IR/IntrinsicsVE.td
llvm/include/llvm/IR/IntrinsicsVEVL.gen.td
llvm/include/llvm/Support/MachineValueType.h
llvm/lib/CodeGen/SjLjEHPrepare.cpp
llvm/lib/CodeGen/TargetPassConfig.cpp
llvm/lib/CodeGen/ValueTypes.cpp
llvm/lib/IR/Function.cpp
llvm/lib/Support/Triple.cpp
llvm/lib/Target/LLVMBuild.txt
llvm/lib/Target/VE/AsmParser/CMakeLists.txt
llvm/lib/Target/VE/AsmParser/LLVMBuild.txt
llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp
llvm/lib/Target/VE/CMakeLists.txt
llvm/lib/Target/VE/InstPrinter/CMakeLists.txt
llvm/lib/Target/VE/InstPrinter/LLVMBuild.txt
llvm/lib/Target/VE/InstPrinter/VEInstPrinter.cpp
llvm/lib/Target/VE/InstPrinter/VEInstPrinter.h
llvm/lib/Target/VE/LLVMBuild.txt
llvm/lib/Target/VE/LVLGen.cpp
llvm/lib/Target/VE/MCTargetDesc/CMakeLists.txt
llvm/lib/Target/VE/MCTargetDesc/LLVMBuild.txt
llvm/lib/Target/VE/MCTargetDesc/VEFixupKinds.h
llvm/lib/Target/VE/MCTargetDesc/VEMCAsmInfo.cpp
llvm/lib/Target/VE/MCTargetDesc/VEMCAsmInfo.h
llvm/lib/Target/VE/MCTargetDesc/VEMCExpr.cpp
llvm/lib/Target/VE/MCTargetDesc/VEMCExpr.h
llvm/lib/Target/VE/MCTargetDesc/VEMCTargetDesc.cpp
llvm/lib/Target/VE/MCTargetDesc/VEMCTargetDesc.h
llvm/lib/Target/VE/MCTargetDesc/VETargetStreamer.cpp
llvm/lib/Target/VE/MCTargetDesc/VETargetStreamer.h
llvm/lib/Target/VE/TargetInfo/CMakeLists.txt
llvm/lib/Target/VE/TargetInfo/LLVMBuild.txt
llvm/lib/Target/VE/TargetInfo/VETargetInfo.cpp
llvm/lib/Target/VE/VE.h
llvm/lib/Target/VE/VE.td
llvm/lib/Target/VE/VEAsmPrinter.cpp
llvm/lib/Target/VE/VECallingConv.td
llvm/lib/Target/VE/VEFrameLowering.cpp
llvm/lib/Target/VE/VEFrameLowering.h
llvm/lib/Target/VE/VEISelDAGToDAG.cpp
llvm/lib/Target/VE/VEISelLowering.cpp
llvm/lib/Target/VE/VEISelLowering.h
llvm/lib/Target/VE/VEInstrBuilder.h
llvm/lib/Target/VE/VEInstrFormats.td
llvm/lib/Target/VE/VEInstrInfo.cpp
llvm/lib/Target/VE/VEInstrInfo.h
llvm/lib/Target/VE/VEInstrInfo.td
llvm/lib/Target/VE/VEInstrIntrinsicVL.gen.td
llvm/lib/Target/VE/VEInstrIntrinsicVL.td
llvm/lib/Target/VE/VEInstrPatternsVec.td
llvm/lib/Target/VE/VEInstrVec.td
llvm/lib/Target/VE/VEInstrVecVL.gen.td
llvm/lib/Target/VE/VEInstrVecVL.td
llvm/lib/Target/VE/VEMCInstLower.cpp
llvm/lib/Target/VE/VEMachineFunctionInfo.cpp
llvm/lib/Target/VE/VEMachineFunctionInfo.h
llvm/lib/Target/VE/VERegisterInfo.cpp
llvm/lib/Target/VE/VERegisterInfo.h
llvm/lib/Target/VE/VERegisterInfo.td
llvm/lib/Target/VE/VESchedule.td
llvm/lib/Target/VE/VESubtarget.cpp
llvm/lib/Target/VE/VESubtarget.h
llvm/lib/Target/VE/VETargetMachine.cpp
llvm/lib/Target/VE/VETargetMachine.h
llvm/lib/Target/VE/VETargetTransformInfo.h
llvm/lib/Target/VE/gen-veintrin.sh
llvm/lib/Target/VE/veintrin.py
llvm/lib/Target/VE/vl-index.inc
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
llvm/test/CodeGen/VE/add.ll
llvm/test/CodeGen/VE/addition.ll
llvm/test/CodeGen/VE/alloca.ll
llvm/test/CodeGen/VE/atomic.ll
llvm/test/CodeGen/VE/atomic_unaligned.ll
llvm/test/CodeGen/VE/bitcast.ll
llvm/test/CodeGen/VE/bitreverse.ll
llvm/test/CodeGen/VE/branch1.ll
llvm/test/CodeGen/VE/branch2.ll
llvm/test/CodeGen/VE/broadcast.ll
llvm/test/CodeGen/VE/broadcast_add.ll
llvm/test/CodeGen/VE/broadcast_div.ll
llvm/test/CodeGen/VE/broadcast_fma.ll
llvm/test/CodeGen/VE/broadcast_mul.ll
llvm/test/CodeGen/VE/broadcast_shift.ll
llvm/test/CodeGen/VE/broadcast_sub.ll
llvm/test/CodeGen/VE/bswap.ll
llvm/test/CodeGen/VE/build_vec.ll
llvm/test/CodeGen/VE/build_vec_2.ll
llvm/test/CodeGen/VE/builtin_sjlj.ll
llvm/test/CodeGen/VE/call.ll
llvm/test/CodeGen/VE/callstruct.ll
llvm/test/CodeGen/VE/cast.ll
llvm/test/CodeGen/VE/combinestore.ll
llvm/test/CodeGen/VE/constant.ll
llvm/test/CodeGen/VE/constantvr.ll
llvm/test/CodeGen/VE/copy.ll
llvm/test/CodeGen/VE/ctlz.ll
llvm/test/CodeGen/VE/ctpop.ll
llvm/test/CodeGen/VE/cttz.ll
llvm/test/CodeGen/VE/div.ll
llvm/test/CodeGen/VE/extload.ll
llvm/test/CodeGen/VE/extract_insert_vector_elt.ll
llvm/test/CodeGen/VE/faddd.ll
llvm/test/CodeGen/VE/fma.ll
llvm/test/CodeGen/VE/fp_add.ll
llvm/test/CodeGen/VE/fp_div.ll
llvm/test/CodeGen/VE/fp_mul.ll
llvm/test/CodeGen/VE/fp_sub.ll
llvm/test/CodeGen/VE/fp_to_int.ll
llvm/test/CodeGen/VE/func-epilogue.ll
llvm/test/CodeGen/VE/func-prologue.ll
llvm/test/CodeGen/VE/function_prologue_epilogue.ll
llvm/test/CodeGen/VE/gen-velintrin-andm_mmm.ll
llvm/test/CodeGen/VE/gen-velintrin-eqvm_mmm.ll
llvm/test/CodeGen/VE/gen-velintrin-negm_mm.ll
llvm/test/CodeGen/VE/gen-velintrin-nndm_mmm.ll
llvm/test/CodeGen/VE/gen-velintrin-orm_mmm.ll
llvm/test/CodeGen/VE/gen-velintrin-pvadds_vsvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvadds_vsvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvadds_vvvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvadds_vvvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvaddu_vsvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvaddu_vsvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvaddu_vvvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvaddu_vvvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvand_vsvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvand_vsvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvand_vvvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvand_vvvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvbrd_vsMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvbrd_vsl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvcmps_vsvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvcmps_vsvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvcmps_vvvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvcmps_vvvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvcmpu_vsvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvcmpu_vsvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvcmpu_vvvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvcmpu_vvvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvcvtsw_vvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvcvtws_vvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvcvtws_vvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvcvtwsrz_vvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvcvtwsrz_vvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pveqv_vsvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pveqv_vsvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pveqv_vvvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pveqv_vvvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfadd_vsvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfadd_vsvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfadd_vvvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfadd_vvvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfcmp_vsvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfcmp_vsvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfcmp_vvvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfcmp_vvvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmad_vsvvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmad_vsvvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmad_vvsvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmad_vvsvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmad_vvvvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmad_vvvvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmax_vsvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmax_vsvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmax_vvvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmax_vvvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmin_vsvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmin_vsvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmin_vvvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmin_vvvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmsb_vsvvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmsb_vsvvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmsb_vvsvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmsb_vvsvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmsb_vvvvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmsb_vvvvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmul_vsvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmul_vsvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmul_vvvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfmul_vvvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfnmad_vsvvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfnmad_vsvvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfnmad_vvsvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfnmad_vvsvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfnmad_vvvvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfnmad_vvvvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfnmsb_vsvvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfnmsb_vsvvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfnmsb_vvsvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfnmsb_vvsvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfnmsb_vvvvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfnmsb_vvvvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfsub_vsvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfsub_vsvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfsub_vvvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvfsub_vvvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvmaxs_vsvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvmaxs_vsvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvmaxs_vvvMvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvmaxs_vvvl.ll
llvm/test/CodeGen/VE/gen-velintrin-pvmins_vsvMvl.ll
(576 more files...)
More information about the cfe-commits
mailing list