diff options
author | xiezhiheng <xiezhiheng@huawei.com> | 2020-08-27 09:07:26 +0100 |
---|---|---|
committer | Richard Sandiford <richard.sandiford@arm.com> | 2020-08-27 09:07:26 +0100 |
commit | 795944c4563b4d9abf6d4bd9963f41fa1249d9d9 (patch) | |
tree | f75d769f311d68199ec374208b69fcc1adea14cd /gcc | |
parent | d7738d4fde5b248b6814f5dd20617eecd33601df (diff) | |
download | gcc-795944c4563b4d9abf6d4bd9963f41fa1249d9d9.zip gcc-795944c4563b4d9abf6d4bd9963f41fa1249d9d9.tar.gz gcc-795944c4563b4d9abf6d4bd9963f41fa1249d9d9.tar.bz2 |
AArch64: Add FLAG for rounding intrinsics [PR94442]
2020-08-27 Zhiheng Xie <xiezhiheng@huawei.com>
gcc/ChangeLog:
* config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
for rounding intrinsics.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/aarch64/aarch64-simd-builtins.def | 188 |
1 files changed, 94 insertions, 94 deletions
diff --git a/gcc/config/aarch64/aarch64-simd-builtins.def b/gcc/config/aarch64/aarch64-simd-builtins.def index a9b47e4..d1b2110 100644 --- a/gcc/config/aarch64/aarch64-simd-builtins.def +++ b/gcc/config/aarch64/aarch64-simd-builtins.def @@ -332,103 +332,103 @@ BUILTIN_VHSDF (BINOP, smin_nanp, 0, NONE) /* Implemented by <frint_pattern><mode>2. */ - BUILTIN_VHSDF (UNOP, btrunc, 2, ALL) - BUILTIN_VHSDF (UNOP, ceil, 2, ALL) - BUILTIN_VHSDF (UNOP, floor, 2, ALL) - BUILTIN_VHSDF (UNOP, nearbyint, 2, ALL) - BUILTIN_VHSDF (UNOP, rint, 2, ALL) - BUILTIN_VHSDF (UNOP, round, 2, ALL) - BUILTIN_VHSDF_DF (UNOP, frintn, 2, ALL) - - VAR1 (UNOP, btrunc, 2, ALL, hf) - VAR1 (UNOP, ceil, 2, ALL, hf) - VAR1 (UNOP, floor, 2, ALL, hf) - VAR1 (UNOP, frintn, 2, ALL, hf) - VAR1 (UNOP, nearbyint, 2, ALL, hf) - VAR1 (UNOP, rint, 2, ALL, hf) - VAR1 (UNOP, round, 2, ALL, hf) + BUILTIN_VHSDF (UNOP, btrunc, 2, FP) + BUILTIN_VHSDF (UNOP, ceil, 2, FP) + BUILTIN_VHSDF (UNOP, floor, 2, FP) + BUILTIN_VHSDF (UNOP, nearbyint, 2, FP) + BUILTIN_VHSDF (UNOP, rint, 2, FP) + BUILTIN_VHSDF (UNOP, round, 2, FP) + BUILTIN_VHSDF_DF (UNOP, frintn, 2, FP) + + VAR1 (UNOP, btrunc, 2, FP, hf) + VAR1 (UNOP, ceil, 2, FP, hf) + VAR1 (UNOP, floor, 2, FP, hf) + VAR1 (UNOP, frintn, 2, FP, hf) + VAR1 (UNOP, nearbyint, 2, FP, hf) + VAR1 (UNOP, rint, 2, FP, hf) + VAR1 (UNOP, round, 2, FP, hf) /* Implemented by l<fcvt_pattern><su_optab><VQDF:mode><vcvt_target>2. */ - VAR1 (UNOP, lbtruncv4hf, 2, ALL, v4hi) - VAR1 (UNOP, lbtruncv8hf, 2, ALL, v8hi) - VAR1 (UNOP, lbtruncv2sf, 2, ALL, v2si) - VAR1 (UNOP, lbtruncv4sf, 2, ALL, v4si) - VAR1 (UNOP, lbtruncv2df, 2, ALL, v2di) - - VAR1 (UNOPUS, lbtruncuv4hf, 2, ALL, v4hi) - VAR1 (UNOPUS, lbtruncuv8hf, 2, ALL, v8hi) - VAR1 (UNOPUS, lbtruncuv2sf, 2, ALL, v2si) - VAR1 (UNOPUS, lbtruncuv4sf, 2, ALL, v4si) - VAR1 (UNOPUS, lbtruncuv2df, 2, ALL, v2di) - - VAR1 (UNOP, lroundv4hf, 2, ALL, v4hi) - VAR1 (UNOP, lroundv8hf, 2, ALL, v8hi) - VAR1 (UNOP, lroundv2sf, 2, ALL, v2si) - VAR1 (UNOP, lroundv4sf, 2, ALL, v4si) - VAR1 (UNOP, lroundv2df, 2, ALL, v2di) + VAR1 (UNOP, lbtruncv4hf, 2, FP, v4hi) + VAR1 (UNOP, lbtruncv8hf, 2, FP, v8hi) + VAR1 (UNOP, lbtruncv2sf, 2, FP, v2si) + VAR1 (UNOP, lbtruncv4sf, 2, FP, v4si) + VAR1 (UNOP, lbtruncv2df, 2, FP, v2di) + + VAR1 (UNOPUS, lbtruncuv4hf, 2, FP, v4hi) + VAR1 (UNOPUS, lbtruncuv8hf, 2, FP, v8hi) + VAR1 (UNOPUS, lbtruncuv2sf, 2, FP, v2si) + VAR1 (UNOPUS, lbtruncuv4sf, 2, FP, v4si) + VAR1 (UNOPUS, lbtruncuv2df, 2, FP, v2di) + + VAR1 (UNOP, lroundv4hf, 2, FP, v4hi) + VAR1 (UNOP, lroundv8hf, 2, FP, v8hi) + VAR1 (UNOP, lroundv2sf, 2, FP, v2si) + VAR1 (UNOP, lroundv4sf, 2, FP, v4si) + VAR1 (UNOP, lroundv2df, 2, FP, v2di) /* Implemented by l<fcvt_pattern><su_optab><GPF_F16:mode><GPI:mode>2. */ - BUILTIN_GPI_I16 (UNOP, lroundhf, 2, ALL) - VAR1 (UNOP, lroundsf, 2, ALL, si) - VAR1 (UNOP, lrounddf, 2, ALL, di) - - VAR1 (UNOPUS, lrounduv4hf, 2, ALL, v4hi) - VAR1 (UNOPUS, lrounduv8hf, 2, ALL, v8hi) - VAR1 (UNOPUS, lrounduv2sf, 2, ALL, v2si) - VAR1 (UNOPUS, lrounduv4sf, 2, ALL, v4si) - VAR1 (UNOPUS, lrounduv2df, 2, ALL, v2di) - BUILTIN_GPI_I16 (UNOPUS, lrounduhf, 2, ALL) - VAR1 (UNOPUS, lroundusf, 2, ALL, si) - VAR1 (UNOPUS, lroundudf, 2, ALL, di) - - VAR1 (UNOP, lceilv4hf, 2, ALL, v4hi) - VAR1 (UNOP, lceilv8hf, 2, ALL, v8hi) - VAR1 (UNOP, lceilv2sf, 2, ALL, v2si) - VAR1 (UNOP, lceilv4sf, 2, ALL, v4si) - VAR1 (UNOP, lceilv2df, 2, ALL, v2di) - BUILTIN_GPI_I16 (UNOP, lceilhf, 2, ALL) - - VAR1 (UNOPUS, lceiluv4hf, 2, ALL, v4hi) - VAR1 (UNOPUS, lceiluv8hf, 2, ALL, v8hi) - VAR1 (UNOPUS, lceiluv2sf, 2, ALL, v2si) - VAR1 (UNOPUS, lceiluv4sf, 2, ALL, v4si) - VAR1 (UNOPUS, lceiluv2df, 2, ALL, v2di) - BUILTIN_GPI_I16 (UNOPUS, lceiluhf, 2, ALL) - VAR1 (UNOPUS, lceilusf, 2, ALL, si) - VAR1 (UNOPUS, lceiludf, 2, ALL, di) - - VAR1 (UNOP, lfloorv4hf, 2, ALL, v4hi) - VAR1 (UNOP, lfloorv8hf, 2, ALL, v8hi) - VAR1 (UNOP, lfloorv2sf, 2, ALL, v2si) - VAR1 (UNOP, lfloorv4sf, 2, ALL, v4si) - VAR1 (UNOP, lfloorv2df, 2, ALL, v2di) - BUILTIN_GPI_I16 (UNOP, lfloorhf, 2, ALL) - - VAR1 (UNOPUS, lflooruv4hf, 2, ALL, v4hi) - VAR1 (UNOPUS, lflooruv8hf, 2, ALL, v8hi) - VAR1 (UNOPUS, lflooruv2sf, 2, ALL, v2si) - VAR1 (UNOPUS, lflooruv4sf, 2, ALL, v4si) - VAR1 (UNOPUS, lflooruv2df, 2, ALL, v2di) - BUILTIN_GPI_I16 (UNOPUS, lflooruhf, 2, ALL) - VAR1 (UNOPUS, lfloorusf, 2, ALL, si) - VAR1 (UNOPUS, lfloorudf, 2, ALL, di) - - VAR1 (UNOP, lfrintnv4hf, 2, ALL, v4hi) - VAR1 (UNOP, lfrintnv8hf, 2, ALL, v8hi) - VAR1 (UNOP, lfrintnv2sf, 2, ALL, v2si) - VAR1 (UNOP, lfrintnv4sf, 2, ALL, v4si) - VAR1 (UNOP, lfrintnv2df, 2, ALL, v2di) - BUILTIN_GPI_I16 (UNOP, lfrintnhf, 2, ALL) - VAR1 (UNOP, lfrintnsf, 2, ALL, si) - VAR1 (UNOP, lfrintndf, 2, ALL, di) - - VAR1 (UNOPUS, lfrintnuv4hf, 2, ALL, v4hi) - VAR1 (UNOPUS, lfrintnuv8hf, 2, ALL, v8hi) - VAR1 (UNOPUS, lfrintnuv2sf, 2, ALL, v2si) - VAR1 (UNOPUS, lfrintnuv4sf, 2, ALL, v4si) - VAR1 (UNOPUS, lfrintnuv2df, 2, ALL, v2di) - BUILTIN_GPI_I16 (UNOPUS, lfrintnuhf, 2, ALL) - VAR1 (UNOPUS, lfrintnusf, 2, ALL, si) - VAR1 (UNOPUS, lfrintnudf, 2, ALL, di) + BUILTIN_GPI_I16 (UNOP, lroundhf, 2, FP) + VAR1 (UNOP, lroundsf, 2, FP, si) + VAR1 (UNOP, lrounddf, 2, FP, di) + + VAR1 (UNOPUS, lrounduv4hf, 2, FP, v4hi) + VAR1 (UNOPUS, lrounduv8hf, 2, FP, v8hi) + VAR1 (UNOPUS, lrounduv2sf, 2, FP, v2si) + VAR1 (UNOPUS, lrounduv4sf, 2, FP, v4si) + VAR1 (UNOPUS, lrounduv2df, 2, FP, v2di) + BUILTIN_GPI_I16 (UNOPUS, lrounduhf, 2, FP) + VAR1 (UNOPUS, lroundusf, 2, FP, si) + VAR1 (UNOPUS, lroundudf, 2, FP, di) + + VAR1 (UNOP, lceilv4hf, 2, FP, v4hi) + VAR1 (UNOP, lceilv8hf, 2, FP, v8hi) + VAR1 (UNOP, lceilv2sf, 2, FP, v2si) + VAR1 (UNOP, lceilv4sf, 2, FP, v4si) + VAR1 (UNOP, lceilv2df, 2, FP, v2di) + BUILTIN_GPI_I16 (UNOP, lceilhf, 2, FP) + + VAR1 (UNOPUS, lceiluv4hf, 2, FP, v4hi) + VAR1 (UNOPUS, lceiluv8hf, 2, FP, v8hi) + VAR1 (UNOPUS, lceiluv2sf, 2, FP, v2si) + VAR1 (UNOPUS, lceiluv4sf, 2, FP, v4si) + VAR1 (UNOPUS, lceiluv2df, 2, FP, v2di) + BUILTIN_GPI_I16 (UNOPUS, lceiluhf, 2, FP) + VAR1 (UNOPUS, lceilusf, 2, FP, si) + VAR1 (UNOPUS, lceiludf, 2, FP, di) + + VAR1 (UNOP, lfloorv4hf, 2, FP, v4hi) + VAR1 (UNOP, lfloorv8hf, 2, FP, v8hi) + VAR1 (UNOP, lfloorv2sf, 2, FP, v2si) + VAR1 (UNOP, lfloorv4sf, 2, FP, v4si) + VAR1 (UNOP, lfloorv2df, 2, FP, v2di) + BUILTIN_GPI_I16 (UNOP, lfloorhf, 2, FP) + + VAR1 (UNOPUS, lflooruv4hf, 2, FP, v4hi) + VAR1 (UNOPUS, lflooruv8hf, 2, FP, v8hi) + VAR1 (UNOPUS, lflooruv2sf, 2, FP, v2si) + VAR1 (UNOPUS, lflooruv4sf, 2, FP, v4si) + VAR1 (UNOPUS, lflooruv2df, 2, FP, v2di) + BUILTIN_GPI_I16 (UNOPUS, lflooruhf, 2, FP) + VAR1 (UNOPUS, lfloorusf, 2, FP, si) + VAR1 (UNOPUS, lfloorudf, 2, FP, di) + + VAR1 (UNOP, lfrintnv4hf, 2, FP, v4hi) + VAR1 (UNOP, lfrintnv8hf, 2, FP, v8hi) + VAR1 (UNOP, lfrintnv2sf, 2, FP, v2si) + VAR1 (UNOP, lfrintnv4sf, 2, FP, v4si) + VAR1 (UNOP, lfrintnv2df, 2, FP, v2di) + BUILTIN_GPI_I16 (UNOP, lfrintnhf, 2, FP) + VAR1 (UNOP, lfrintnsf, 2, FP, si) + VAR1 (UNOP, lfrintndf, 2, FP, di) + + VAR1 (UNOPUS, lfrintnuv4hf, 2, FP, v4hi) + VAR1 (UNOPUS, lfrintnuv8hf, 2, FP, v8hi) + VAR1 (UNOPUS, lfrintnuv2sf, 2, FP, v2si) + VAR1 (UNOPUS, lfrintnuv4sf, 2, FP, v4si) + VAR1 (UNOPUS, lfrintnuv2df, 2, FP, v2di) + BUILTIN_GPI_I16 (UNOPUS, lfrintnuhf, 2, FP) + VAR1 (UNOPUS, lfrintnusf, 2, FP, si) + VAR1 (UNOPUS, lfrintnudf, 2, FP, di) /* Implemented by <optab><fcvt_target><VDQF:mode>2. */ VAR1 (UNOP, floatv4hi, 2, ALL, v4hf) |