[PATCH] D120449: [RISCV][RVV] Add strict vfcvt intrinsics that have side effects for dynamically-set rounding mode

ShihPo Hung via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Feb 23 19:11:35 PST 2022


arcbbb created this revision.
arcbbb added reviewers: craig.topper, rogfer01, frasercrmck, kito-cheng, monkchiang, eopXD, khchen.
Herald added subscribers: VincentWu, luke957, achieveartificialintelligence, vkmr, evandro, luismarques, apazos, sameer.abuasal, s.egerton, Jim, benna, psnobl, jocewei, PkmX, the_o, brucehoult, MartinMosbeck, edward-jones, zzheng, jrtc27, niosHD, sabuasal, simoncook, johnrusso, rbar, asb, hiraditya.
arcbbb requested review of this revision.
Herald added subscribers: llvm-commits, cfe-commits, pcwang-thead, MaskRay.
Herald added projects: clang, LLVM.

This patch adds a set of vector vfcvt intrinsics that have side effects:

  strict.vfcvt.xu.f,  strict.vfcvt.x.f,  strict.vfcvt.f.xu, strict.vfcvt.f.xu,
  strict.vfwcvt.xu.f,  strict.vfwcvt.x.f,  strict.vfwcvt.f.xu, strict.vfwcvt.f.xu, strict.vfwcvt.f.f
  strict.vfncvt.xu.f,  strict.vfncvt.x.f,  strict.vfncvt.f.xu, strict.vfncvt.f.xu,.strict.vfncvt.f.f

Clang can emit these based on getIsFPConstrained().

And the rest strict vector fp intrinsics will come in later patches:

  vfsqrt, vfrsqrt7, vfrec7, vfadd, vfsub, vfmul, vfdiv,
  vfredosum, vfredusum, vfmacc, vfmadd, vfmsac, vfmsub


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D120449

Files:
  clang/include/clang/Basic/riscv_vector.td
  clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfcvt.c
  clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfncvt.c
  clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwcvt.c
  clang/test/CodeGen/RISCV/rvv-intrinsics/vfcvt.c
  clang/test/CodeGen/RISCV/rvv-intrinsics/vfncvt.c
  clang/test/CodeGen/RISCV/rvv-intrinsics/vfwcvt.c
  clang/utils/TableGen/RISCVVEmitter.cpp
  llvm/include/llvm/IR/IntrinsicsRISCV.td
  llvm/lib/Target/RISCV/RISCVISelLowering.cpp
  llvm/lib/Target/RISCV/RISCVISelLowering.h
  llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
  llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
  llvm/test/CodeGen/RISCV/rvv/strict-vfcvt-f-x.ll
  llvm/test/CodeGen/RISCV/rvv/strict-vfcvt-f-xu.ll
  llvm/test/CodeGen/RISCV/rvv/strict-vfcvt-x-f.ll
  llvm/test/CodeGen/RISCV/rvv/strict-vfcvt-xu-f.ll
  llvm/test/CodeGen/RISCV/rvv/strict-vfncvt-f-f.ll
  llvm/test/CodeGen/RISCV/rvv/strict-vfncvt-f-x.ll
  llvm/test/CodeGen/RISCV/rvv/strict-vfncvt-f-xu.ll
  llvm/test/CodeGen/RISCV/rvv/strict-vfncvt-x-f.ll
  llvm/test/CodeGen/RISCV/rvv/strict-vfncvt-xu-f.ll
  llvm/test/CodeGen/RISCV/rvv/strict-vfwcvt-f-f.ll
  llvm/test/CodeGen/RISCV/rvv/strict-vfwcvt-f-x.ll
  llvm/test/CodeGen/RISCV/rvv/strict-vfwcvt-f-xu.ll
  llvm/test/CodeGen/RISCV/rvv/strict-vfwcvt-x-f.ll
  llvm/test/CodeGen/RISCV/rvv/strict-vfwcvt-xu-f.ll



More information about the cfe-commits mailing list