[Openmp-commits] [PATCH] D71341: [VE,#4] Target vector intrinsics

Simon Moll via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Wed Dec 11 03:13:48 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 Openmp-commits mailing list