From: xiezhiheng Date: Thu, 27 Aug 2020 08:07:26 +0000 (+0100) Subject: AArch64: Add FLAG for rounding intrinsics [PR94442] X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=795944c4563b4d9abf6d4bd9963f41fa1249d9d9;p=gcc.git AArch64: Add FLAG for rounding intrinsics [PR94442] 2020-08-27 Zhiheng Xie gcc/ChangeLog: * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG for rounding intrinsics. --- diff --git a/gcc/config/aarch64/aarch64-simd-builtins.def b/gcc/config/aarch64/aarch64-simd-builtins.def index a9b47e4ea1f..d1b21102b2f 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 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 l2. */ - 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 l2. */ - 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 2. */ VAR1 (UNOP, floatv4hi, 2, ALL, v4hf)