[all-commits] [llvm/llvm-project] ccc624: [RISCV][Clang] Add RVV Widening Integer Add/Subtra...

Zakk Chen via All-commits all-commits at lists.llvm.org
Sun Apr 11 19:30:17 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ccc624bfd417c92b30581becf6974b42aba82a10
      https://github.com/llvm/llvm-project/commit/ccc624bfd417c92b30581becf6974b42aba82a10
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vwadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vwsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vwadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vwsub.c

  Log Message:
  -----------
  [RISCV][Clang] Add RVV Widening Integer Add/Subtract intrinsic functions.

Reviewed By: craig.topper

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

Differential Revision: https://reviews.llvm.org/D99526


  Commit: 007ea0e736432ef1f6be7d88378012822d96767b
      https://github.com/llvm/llvm-project/commit/007ea0e736432ef1f6be7d88378012822d96767b
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfdiv.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmax.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmin.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmul.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfrdiv.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfrsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfsgnj.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfdiv.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmax.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmin.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmul.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfrdiv.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfrsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfsgnj.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfsub.c

  Log Message:
  -----------
  [RISCV][Clang] Add some RVV Floating-Point intrinsic functions.

Support the following instructions which have the same class.
1. Vector Single-Width Floating-Point Subtract Instructions
2. Vector Single-Width Floating-Point Multiply/Divide Instructions
3. Vector Floating-Point MIN/MAX Instructions
4. Vector Floating-Point Sign-Injection Instructions

Reviewed By: craig.topper

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

Differential Revision: https://reviews.llvm.org/D99668


  Commit: 98a3ff9d05250807867be3dd82fdb10ee5c4030a
      https://github.com/llvm/llvm-project/commit/98a3ff9d05250807867be3dd82fdb10ee5c4030a
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmacc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmsac.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfnmacc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfnmadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfnmsac.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfnmsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwmacc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwmsac.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwmul.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwnmacc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwnmsac.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmfeq.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmfge.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmfgt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmfle.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmflt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmfne.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmacc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmsac.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfnmacc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfnmadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfnmsac.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfnmsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwmacc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwmsac.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwmul.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwnmacc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwnmsac.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmfeq.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmfge.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmfgt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmfle.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmflt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmfne.c

  Log Message:
  -----------
  [RISCV][Clang] Add more RVV Floating-Point intrinsic functions.

Support below instructions.
1. Vector Widening Floating-Point Add/Subtract Instructions
2. Vector Widening Floating-Point Multiply
3. Vector Single-Width Floating-Point Fused Multiply-Add Instructions
4. Vector Widening Floating-Point Fused Multiply-Add Instructions
5. Vector Floating-Point Compare Instructions

Reviewed By: craig.topper, HsiangKai

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

Differential Revision: https://reviews.llvm.org/D99669


  Commit: 5f7739b60e983dadc3c669b0ddf930d4d8242c4c
      https://github.com/llvm/llvm-project/commit/5f7739b60e983dadc3c669b0ddf930d4d8242c4c
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfclass.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmerge.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfrec7.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfrsqrt7.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfsqrt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfclass.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmerge.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfrec7.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfrsqrt7.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfsqrt.c

  Log Message:
  -----------
  [RISCV][Clang] Add some RVV Floating-Point intrinsic functions.

Support vfclass, vfmerge, vfrec7, vfrsqrt7, vfsqrt instructions.

Reviewed By: craig.topper

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

Differential Revision: https://reviews.llvm.org/D99741


  Commit: 01fa222b6d9febc5f5c654ce40137380b6e4c540
      https://github.com/llvm/llvm-project/commit/01fa222b6d9febc5f5c654ce40137380b6e4c540
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfcvt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfncvt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwcvt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfcvt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfncvt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwcvt.c
    M clang/utils/TableGen/RISCVVEmitter.cpp

  Log Message:
  -----------
  [RISCV][Clang] Add RVV Type-Convert intrinsic functions.

Fix extension macro condition.

Support below instructions:
1. Single-Width Floating-Point/Integer Type-Convert Instructions
2. Widening Floating-Point/Integer Type-Convert Instructions
3. Narrowing Floating-Point/Integer Type-Convert Instructions

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D99742


  Commit: 07c3854a75bcbb7521f27e1e775bc79f4d0340f7
      https://github.com/llvm/llvm-project/commit/07c3854a75bcbb7521f27e1e775bc79f4d0340f7
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmerge.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmerge.c

  Log Message:
  -----------
  [RISCV][Clang] Add RVV merge intrinsic functions.

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D99963


  Commit: c680b0dabf367046c9acb397cddc5e3a2194bbaa
      https://github.com/llvm/llvm-project/commit/c680b0dabf367046c9acb397cddc5e3a2194bbaa
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfredmax.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfredmin.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfredsum.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwredsum.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredand.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredmax.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredmin.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredsum.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredxor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vwredsum.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfredmax.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfredmin.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfredsum.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwredosum.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwredsum.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vredand.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vredmax.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vredmin.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vredor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vredsum.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vredxor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vwredsum.c

  Log Message:
  -----------
  [RISCV][Clang] Add all RVV Reduction intrinsic functions.

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D99964


  Commit: e5a821926407713a3955409a74089de6ebf36493
      https://github.com/llvm/llvm-project/commit/e5a821926407713a3955409a74089de6ebf36493
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vlse.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vse.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsoxei.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsse.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsuxei.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics/vle.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vlse.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics/vse.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vsoxei.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vsse.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vsuxei.c

  Log Message:
  -----------
  [RISCV][Clang] Add more RVV load/store intrinsic functions.

Support the following instructions.
1. Mask load and store
2. Vector Strided Instructions
3. Vector Indexed Store Instructions

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D99965


  Commit: a8fc0e445cad91a5c2f207e39ee9220253eb5578
      https://github.com/llvm/llvm-project/commit/a8fc0e445cad91a5c2f207e39ee9220253eb5578
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfirst.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vid.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/viota.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmand.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmnand.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmnor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsbf.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsif.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsof.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmxnor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmxor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vpopc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfirst.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vid.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/viota.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmand.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmclr.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmnand.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmnor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmsbf.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmset.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmsif.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmsof.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmxnor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmxor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vpopc.c
    M clang/utils/TableGen/RISCVVEmitter.cpp
    M llvm/include/llvm/IR/IntrinsicsRISCV.td

  Log Message:
  -----------
  [RISCV][Clang] Add all RVV Mask intrinsic functions.

1. Redefine vpopc and vfirst IR intrinsic so it could adapt on
clang tablegen generator which always appends a type for vl
in IntrinsicType of clang codegen.
2. Remove `c` type transformer and add `u` and `l` for unsigned long
and long type.

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D100120


  Commit: 59d5b8c27b43021887dbf63e23800c340386080c
      https://github.com/llvm/llvm-project/commit/59d5b8c27b43021887dbf63e23800c340386080c
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfslide1down.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfslide1up.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vrgather.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vslide1down.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vslide1up.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vslidedown.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vslideup.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfslide1down.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfslide1up.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vrgather.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vslide1down.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vslide1up.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vslidedown.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vslideup.c

  Log Message:
  -----------
  [RISCV][Clang] Add some RVV Permutation intrinsic functions.

Support the following instructions.
1. Vector Slide Instructions
2. Vector Register Gather Instructions
3. Vector Compress Instruction

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D100127


Compare: https://github.com/llvm/llvm-project/compare/a3bfddbb6a27...59d5b8c27b43


More information about the All-commits mailing list