craig.topper created this revision. craig.topper added reviewers: kito-cheng, eopXD, frasercrmck, rogfer01, reames. Herald added subscribers: sunshaoce, VincentWu, StephenFan, vkmr, evandro, luismarques, apazos, sameer.abuasal, s.egerton, Jim, benna, psnobl, jocewei, PkmX, the_o, brucehoult, MartinMosbeck, edward-jones, zzheng, jrtc27, shiva0217, niosHD, sabuasal, simoncook, johnrusso, rbar, asb, arichardson. Herald added a project: All. craig.topper requested review of this revision. Herald added subscribers: cfe-commits, pcwang-thead. Herald added a project: clang.
Zve32* does not support SEW=64. Or any LMUL smaller than 32/SEW. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D135519 Files: clang/include/clang/Basic/riscv_vector.td Index: clang/include/clang/Basic/riscv_vector.td =================================================================== --- clang/include/clang/Basic/riscv_vector.td +++ clang/include/clang/Basic/riscv_vector.td @@ -1620,7 +1620,6 @@ // and LMUL. let HeaderCode = [{ -#define vsetvl_e8mf8(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 5) #define vsetvl_e8mf4(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 6) #define vsetvl_e8mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 7) #define vsetvl_e8m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 0) @@ -1628,25 +1627,28 @@ #define vsetvl_e8m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 2) #define vsetvl_e8m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 3) -#define vsetvl_e16mf4(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 6) #define vsetvl_e16mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 7) #define vsetvl_e16m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 0) #define vsetvl_e16m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 1) #define vsetvl_e16m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 2) #define vsetvl_e16m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 3) -#define vsetvl_e32mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 7) #define vsetvl_e32m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 0) #define vsetvl_e32m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 1) #define vsetvl_e32m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 2) #define vsetvl_e32m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 3) +#if __riscv_v_elen >= 64 +#define vsetvl_e8mf8(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 5) +#define vsetvl_e16mf4(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 6) +#define vsetvl_e32mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 7) + #define vsetvl_e64m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 0) #define vsetvl_e64m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 1) #define vsetvl_e64m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 2) #define vsetvl_e64m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 3) +#endif -#define vsetvlmax_e8mf8() __builtin_rvv_vsetvlimax(0, 5) #define vsetvlmax_e8mf4() __builtin_rvv_vsetvlimax(0, 6) #define vsetvlmax_e8mf2() __builtin_rvv_vsetvlimax(0, 7) #define vsetvlmax_e8m1() __builtin_rvv_vsetvlimax(0, 0) @@ -1654,23 +1656,28 @@ #define vsetvlmax_e8m4() __builtin_rvv_vsetvlimax(0, 2) #define vsetvlmax_e8m8() __builtin_rvv_vsetvlimax(0, 3) -#define vsetvlmax_e16mf4() __builtin_rvv_vsetvlimax(1, 6) #define vsetvlmax_e16mf2() __builtin_rvv_vsetvlimax(1, 7) #define vsetvlmax_e16m1() __builtin_rvv_vsetvlimax(1, 0) #define vsetvlmax_e16m2() __builtin_rvv_vsetvlimax(1, 1) #define vsetvlmax_e16m4() __builtin_rvv_vsetvlimax(1, 2) #define vsetvlmax_e16m8() __builtin_rvv_vsetvlimax(1, 3) -#define vsetvlmax_e32mf2() __builtin_rvv_vsetvlimax(2, 7) #define vsetvlmax_e32m1() __builtin_rvv_vsetvlimax(2, 0) #define vsetvlmax_e32m2() __builtin_rvv_vsetvlimax(2, 1) #define vsetvlmax_e32m4() __builtin_rvv_vsetvlimax(2, 2) #define vsetvlmax_e32m8() __builtin_rvv_vsetvlimax(2, 3) +#if __riscv_v_elen >= 64 +#define vsetvlmax_e8mf8() __builtin_rvv_vsetvlimax(0, 5) +#define vsetvlmax_e16mf4() __builtin_rvv_vsetvlimax(1, 6) +#define vsetvlmax_e32mf2() __builtin_rvv_vsetvlimax(2, 7) + #define vsetvlmax_e64m1() __builtin_rvv_vsetvlimax(3, 0) #define vsetvlmax_e64m2() __builtin_rvv_vsetvlimax(3, 1) #define vsetvlmax_e64m4() __builtin_rvv_vsetvlimax(3, 2) #define vsetvlmax_e64m8() __builtin_rvv_vsetvlimax(3, 3) +#endif + }] in def vsetvl_macro: RVVHeader;
Index: clang/include/clang/Basic/riscv_vector.td =================================================================== --- clang/include/clang/Basic/riscv_vector.td +++ clang/include/clang/Basic/riscv_vector.td @@ -1620,7 +1620,6 @@ // and LMUL. let HeaderCode = [{ -#define vsetvl_e8mf8(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 5) #define vsetvl_e8mf4(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 6) #define vsetvl_e8mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 7) #define vsetvl_e8m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 0) @@ -1628,25 +1627,28 @@ #define vsetvl_e8m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 2) #define vsetvl_e8m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 3) -#define vsetvl_e16mf4(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 6) #define vsetvl_e16mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 7) #define vsetvl_e16m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 0) #define vsetvl_e16m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 1) #define vsetvl_e16m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 2) #define vsetvl_e16m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 3) -#define vsetvl_e32mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 7) #define vsetvl_e32m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 0) #define vsetvl_e32m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 1) #define vsetvl_e32m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 2) #define vsetvl_e32m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 3) +#if __riscv_v_elen >= 64 +#define vsetvl_e8mf8(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 5) +#define vsetvl_e16mf4(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 6) +#define vsetvl_e32mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 7) + #define vsetvl_e64m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 0) #define vsetvl_e64m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 1) #define vsetvl_e64m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 2) #define vsetvl_e64m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 3) +#endif -#define vsetvlmax_e8mf8() __builtin_rvv_vsetvlimax(0, 5) #define vsetvlmax_e8mf4() __builtin_rvv_vsetvlimax(0, 6) #define vsetvlmax_e8mf2() __builtin_rvv_vsetvlimax(0, 7) #define vsetvlmax_e8m1() __builtin_rvv_vsetvlimax(0, 0) @@ -1654,23 +1656,28 @@ #define vsetvlmax_e8m4() __builtin_rvv_vsetvlimax(0, 2) #define vsetvlmax_e8m8() __builtin_rvv_vsetvlimax(0, 3) -#define vsetvlmax_e16mf4() __builtin_rvv_vsetvlimax(1, 6) #define vsetvlmax_e16mf2() __builtin_rvv_vsetvlimax(1, 7) #define vsetvlmax_e16m1() __builtin_rvv_vsetvlimax(1, 0) #define vsetvlmax_e16m2() __builtin_rvv_vsetvlimax(1, 1) #define vsetvlmax_e16m4() __builtin_rvv_vsetvlimax(1, 2) #define vsetvlmax_e16m8() __builtin_rvv_vsetvlimax(1, 3) -#define vsetvlmax_e32mf2() __builtin_rvv_vsetvlimax(2, 7) #define vsetvlmax_e32m1() __builtin_rvv_vsetvlimax(2, 0) #define vsetvlmax_e32m2() __builtin_rvv_vsetvlimax(2, 1) #define vsetvlmax_e32m4() __builtin_rvv_vsetvlimax(2, 2) #define vsetvlmax_e32m8() __builtin_rvv_vsetvlimax(2, 3) +#if __riscv_v_elen >= 64 +#define vsetvlmax_e8mf8() __builtin_rvv_vsetvlimax(0, 5) +#define vsetvlmax_e16mf4() __builtin_rvv_vsetvlimax(1, 6) +#define vsetvlmax_e32mf2() __builtin_rvv_vsetvlimax(2, 7) + #define vsetvlmax_e64m1() __builtin_rvv_vsetvlimax(3, 0) #define vsetvlmax_e64m2() __builtin_rvv_vsetvlimax(3, 1) #define vsetvlmax_e64m4() __builtin_rvv_vsetvlimax(3, 2) #define vsetvlmax_e64m8() __builtin_rvv_vsetvlimax(3, 3) +#endif + }] in def vsetvl_macro: RVVHeader;
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits