]> gcc.gnu.org Git - gcc.git/commitdiff
arm: [MVE intrinsics] add create shape
authorChristophe Lyon <christophe.lyon@arm.com>
Wed, 15 Feb 2023 14:34:06 +0000 (14:34 +0000)
committerChristophe Lyon <christophe.lyon@arm.com>
Wed, 3 May 2023 14:58:28 +0000 (16:58 +0200)
This patch adds the create shape description.

2022-09-08  Christophe Lyon  <christophe.lyon@arm.com>

gcc/
* config/arm/arm-mve-builtins-shapes.cc (create): New.
* config/arm/arm-mve-builtins-shapes.h: (create): New.

gcc/config/arm/arm-mve-builtins-shapes.cc
gcc/config/arm/arm-mve-builtins-shapes.h

index e2f0984e4a0a21558611a8fbf6c2ddc65e691da0..5e6681c784a8f57d8c1c56c23c7c14b5904b4f60 100644 (file)
@@ -458,6 +458,28 @@ struct binary_orrq_def : public overloaded_base<0>
 };
 SHAPE (binary_orrq)
 
+/* <T0>xN_t vfoo[_t0](uint64_t, uint64_t)
+
+   where there are N arguments in total.
+   Example: vcreateq.
+   int16x8_t [__arm_]vcreateq_s16(uint64_t a, uint64_t b)  */
+struct create_def : public nonoverloaded_base
+{
+  void
+  build (function_builder &b, const function_group_info &group,
+        bool preserve_user_namespace) const override
+  {
+    build_all (b, "v0,su64,su64", group, MODE_none, preserve_user_namespace);
+  }
+
+  tree
+  resolve (function_resolver &r) const override
+  {
+    return r.resolve_uniform (0, 2);
+  }
+};
+SHAPE (create)
+
 /* <T0>[xN]_t vfoo_t0().
 
    Example: vuninitializedq.
index 618b3226050029e3beef476fad5c010551d1b75b..3305d12877a7e7bed50358cb55c2fe52aa150820 100644 (file)
@@ -37,6 +37,7 @@ namespace arm_mve
     extern const function_shape *const binary;
     extern const function_shape *const binary_opt_n;
     extern const function_shape *const binary_orrq;
+    extern const function_shape *const create;
     extern const function_shape *const inherent;
     extern const function_shape *const unary_convert;
 
This page took 0.067951 seconds and 5 git commands to generate.