aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Brown <julian@codesourcery.com>2006-10-30 03:30:10 +0000
committerJulian Brown <julian@codesourcery.com>2006-10-30 03:30:10 +0000
commitb8ce51d563dc5d329d8ca86474f354046e043fde (patch)
tree58e04a0e25ac05b5b60ae46b39173de3f158dd4b
parent7d03daf23d7b39406bc6995d18be6b23648ff684 (diff)
gcc/
* config/arm/neon.ml (poly_unsigned_variant): New function. (elts_same_io_bits_suffix): Now unused, remove. (table, table_2, table_io): New type munging functions for table look-up operations. (ops): Use table_2 and table_io for Vtbl, Vtbx instead of bits_2 and elts_same_io_bits_suffix. * config/arm/arm_neon.h: Regenerate. * doc/arm-neon-intrinsics.texi: Regenerate. * testsuite/gcc.target/arm/neon/*.c: Regenerate. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/csl/sourcerygxx-4_1@118172 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--ChangeLog.csl13
-rw-r--r--gcc/config/arm/arm_neon.h16
-rw-r--r--gcc/config/arm/neon.ml52
-rw-r--r--gcc/doc/arm-neon-intrinsics.texi16
-rw-r--r--gcc/testsuite/gcc.target/arm/neon/vtbl1p8.c4
-rw-r--r--gcc/testsuite/gcc.target/arm/neon/vtbl2p8.c4
-rw-r--r--gcc/testsuite/gcc.target/arm/neon/vtbl3p8.c4
-rw-r--r--gcc/testsuite/gcc.target/arm/neon/vtbl4p8.c4
-rw-r--r--gcc/testsuite/gcc.target/arm/neon/vtbx1p8.c4
-rw-r--r--gcc/testsuite/gcc.target/arm/neon/vtbx2p8.c4
-rw-r--r--gcc/testsuite/gcc.target/arm/neon/vtbx3p8.c4
-rw-r--r--gcc/testsuite/gcc.target/arm/neon/vtbx4p8.c4
12 files changed, 76 insertions, 53 deletions
diff --git a/ChangeLog.csl b/ChangeLog.csl
index ac3a4b4ab1c..bc1bef57da8 100644
--- a/ChangeLog.csl
+++ b/ChangeLog.csl
@@ -1,3 +1,16 @@
+2006-10-30 Julian Brown <julian@codesourcery.com>
+
+ gcc/
+ * config/arm/neon.ml (poly_unsigned_variant): New function.
+ (elts_same_io_bits_suffix): Now unused, remove.
+ (table, table_2, table_io): New type munging functions for table
+ look-up operations.
+ (ops): Use table_2 and table_io for Vtbl, Vtbx instead of bits_2 and
+ elts_same_io_bits_suffix.
+ * config/arm/arm_neon.h: Regenerate.
+ * doc/arm-neon-intrinsics.texi: Regenerate.
+ * testsuite/gcc.target/arm/neon/*.c: Regenerate.
+
2006-10-29 Julian Brown <julian@codesourcery.com>
gcc/
diff --git a/gcc/config/arm/arm_neon.h b/gcc/config/arm/arm_neon.h
index 4c2797bb7e7..63ca2f095f9 100644
--- a/gcc/config/arm/arm_neon.h
+++ b/gcc/config/arm/arm_neon.h
@@ -6089,7 +6089,7 @@ vtbl1_u8 (uint8x8_t __a, uint8x8_t __b)
}
__extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
-vtbl1_p8 (poly8x8_t __a, poly8x8_t __b)
+vtbl1_p8 (poly8x8_t __a, uint8x8_t __b)
{
return __builtin_neon_vtbl1v8qi ((int8x8_t) __a, (int8x8_t) __b);
}
@@ -6109,7 +6109,7 @@ vtbl2_u8 (uint8x8x2_t __a, uint8x8_t __b)
}
__extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
-vtbl2_p8 (poly8x8x2_t __a, poly8x8_t __b)
+vtbl2_p8 (poly8x8x2_t __a, uint8x8_t __b)
{
union { poly8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
return __builtin_neon_vtbl2v8qi (__au.__o, (int8x8_t) __b);
@@ -6130,7 +6130,7 @@ vtbl3_u8 (uint8x8x3_t __a, uint8x8_t __b)
}
__extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
-vtbl3_p8 (poly8x8x3_t __a, poly8x8_t __b)
+vtbl3_p8 (poly8x8x3_t __a, uint8x8_t __b)
{
union { poly8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
return __builtin_neon_vtbl3v8qi (__au.__o, (int8x8_t) __b);
@@ -6151,7 +6151,7 @@ vtbl4_u8 (uint8x8x4_t __a, uint8x8_t __b)
}
__extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
-vtbl4_p8 (poly8x8x4_t __a, poly8x8_t __b)
+vtbl4_p8 (poly8x8x4_t __a, uint8x8_t __b)
{
union { poly8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
return __builtin_neon_vtbl4v8qi (__au.__o, (int8x8_t) __b);
@@ -6170,7 +6170,7 @@ vtbx1_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
}
__extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
-vtbx1_p8 (poly8x8_t __a, poly8x8_t __b, poly8x8_t __c)
+vtbx1_p8 (poly8x8_t __a, poly8x8_t __b, uint8x8_t __c)
{
return __builtin_neon_vtbx1v8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
}
@@ -6190,7 +6190,7 @@ vtbx2_u8 (uint8x8_t __a, uint8x8x2_t __b, uint8x8_t __c)
}
__extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
-vtbx2_p8 (poly8x8_t __a, poly8x8x2_t __b, poly8x8_t __c)
+vtbx2_p8 (poly8x8_t __a, poly8x8x2_t __b, uint8x8_t __c)
{
union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
return __builtin_neon_vtbx2v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
@@ -6211,7 +6211,7 @@ vtbx3_u8 (uint8x8_t __a, uint8x8x3_t __b, uint8x8_t __c)
}
__extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
-vtbx3_p8 (poly8x8_t __a, poly8x8x3_t __b, poly8x8_t __c)
+vtbx3_p8 (poly8x8_t __a, poly8x8x3_t __b, uint8x8_t __c)
{
union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
return __builtin_neon_vtbx3v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
@@ -6232,7 +6232,7 @@ vtbx4_u8 (uint8x8_t __a, uint8x8x4_t __b, uint8x8_t __c)
}
__extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
-vtbx4_p8 (poly8x8_t __a, poly8x8x4_t __b, poly8x8_t __c)
+vtbx4_p8 (poly8x8_t __a, poly8x8x4_t __b, uint8x8_t __c)
{
union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
return __builtin_neon_vtbx4v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
diff --git a/gcc/config/arm/neon.ml b/gcc/config/arm/neon.ml
index a2b00e2fdcf..49b3ea3acb3 100644
--- a/gcc/config/arm/neon.ml
+++ b/gcc/config/arm/neon.ml
@@ -303,6 +303,12 @@ let non_signed_variant = function
| U64 -> I64
| x -> x
+let poly_unsigned_variant v =
+ let elclass = match elt_class v with
+ Poly -> Unsigned
+ | x -> x in
+ elt_of_class_width elclass (elt_width v)
+
let widen_elt elt =
let w = elt_width elt
and c = elt_class elt in
@@ -488,11 +494,6 @@ let elts_same_io_lane =
let elts_same_io =
elts_same (fun vtype -> Arity3 (vtype 0, vtype 0, vtype 1, vtype 2))
-let elts_same_io_bits_suffix shape elt =
- (fst (elts_same (fun vtype -> Arity3 (vtype 0, vtype 0, vtype 1, vtype 2))
- shape elt),
- bits_of_elt elt)
-
let elts_same_2_lane =
elts_same (fun vtype -> Arity3 (vtype 0, vtype 1, vtype 2, vtype 3))
@@ -655,6 +656,17 @@ let extend shape elt =
let vtype = type_for_elt shape elt in
Arity3 (vtype 0, vtype 1, vtype 2, vtype 3), bits_of_elt elt
+(* Table look-up operations. Operand 2 is signed/unsigned for signed/unsigned
+ integer ops respectively, or unsigned for polynomial ops. *)
+
+let table mkarity shape elt =
+ let vtype = type_for_elt shape elt in
+ let op2 = type_for_elt shape (poly_unsigned_variant elt) 2 in
+ mkarity vtype op2, bits_of_elt elt
+
+let table_2 = table (fun vtype op2 -> Arity2 (vtype 0, vtype 1, op2))
+let table_io = table (fun vtype op2 -> Arity3 (vtype 0, vtype 0, vtype 1, op2))
+
(* Operations where only bits matter. *)
let bits_1 = make_bits_only elts_same_1
@@ -1097,33 +1109,31 @@ let ops =
Vtbl 1,
[Instruction_name ["vtbl"];
Disassembles_as [Use_operands [| Dreg; VecArray (1, Dreg); Dreg |]]],
- Use_operands [| Dreg; Dreg; Dreg |], "vtbl1", bits_2,
- [U8; S8; P8];
+ Use_operands [| Dreg; Dreg; Dreg |], "vtbl1", table_2, [U8; S8; P8];
Vtbl 2, [Instruction_name ["vtbl"]],
- Use_operands [| Dreg; VecArray (2, Dreg); Dreg |], "vtbl2",
- bits_2, [U8; S8; P8];
+ Use_operands [| Dreg; VecArray (2, Dreg); Dreg |], "vtbl2", table_2,
+ [U8; S8; P8];
Vtbl 3, [Instruction_name ["vtbl"]],
- Use_operands [| Dreg; VecArray (3, Dreg); Dreg |], "vtbl3",
- bits_2, [U8; S8; P8];
+ Use_operands [| Dreg; VecArray (3, Dreg); Dreg |], "vtbl3", table_2,
+ [U8; S8; P8];
Vtbl 4, [Instruction_name ["vtbl"]],
- Use_operands [| Dreg; VecArray (4, Dreg); Dreg |], "vtbl4",
- bits_2, [U8; S8; P8];
+ Use_operands [| Dreg; VecArray (4, Dreg); Dreg |], "vtbl4", table_2,
+ [U8; S8; P8];
(* Extended table lookup. *)
Vtbx 1,
[Instruction_name ["vtbx"];
Disassembles_as [Use_operands [| Dreg; VecArray (1, Dreg); Dreg |]]],
- Use_operands [| Dreg; Dreg; Dreg |], "vtbx1", elts_same_io_bits_suffix,
- [U8; S8; P8];
+ Use_operands [| Dreg; Dreg; Dreg |], "vtbx1", table_io, [U8; S8; P8];
Vtbx 2, [Instruction_name ["vtbx"]],
- Use_operands [| Dreg; VecArray (2, Dreg); Dreg |], "vtbx2",
- elts_same_io_bits_suffix, [U8; S8; P8];
+ Use_operands [| Dreg; VecArray (2, Dreg); Dreg |], "vtbx2", table_io,
+ [U8; S8; P8];
Vtbx 3, [Instruction_name ["vtbx"]],
- Use_operands [| Dreg; VecArray (3, Dreg); Dreg |], "vtbx3",
- elts_same_io_bits_suffix, [U8; S8; P8];
+ Use_operands [| Dreg; VecArray (3, Dreg); Dreg |], "vtbx3", table_io,
+ [U8; S8; P8];
Vtbx 4, [Instruction_name ["vtbx"]],
- Use_operands [| Dreg; VecArray (4, Dreg); Dreg |], "vtbx4",
- elts_same_io_bits_suffix, [U8; S8; P8];
+ Use_operands [| Dreg; VecArray (4, Dreg); Dreg |], "vtbx4", table_io,
+ [U8; S8; P8];
(* Multiply, lane. (note: these were undocumented at the time of
writing). *)
diff --git a/gcc/doc/arm-neon-intrinsics.texi b/gcc/doc/arm-neon-intrinsics.texi
index 89fe5c045e9..c35662c01e9 100644
--- a/gcc/doc/arm-neon-intrinsics.texi
+++ b/gcc/doc/arm-neon-intrinsics.texi
@@ -5840,7 +5840,7 @@
@subsubsection Table lookup
@itemize @bullet
-@item poly8x8_t vtbl1_p8 (poly8x8_t, poly8x8_t)
+@item poly8x8_t vtbl1_p8 (poly8x8_t, uint8x8_t)
@*@emph{Form of expected instruction(s):} @code{vtbl.8 @var{d0}, @{@var{d0}@}, @var{d0}}
@end itemize
@@ -5858,7 +5858,7 @@
@itemize @bullet
-@item poly8x8_t vtbl2_p8 (poly8x8x2_t, poly8x8_t)
+@item poly8x8_t vtbl2_p8 (poly8x8x2_t, uint8x8_t)
@*@emph{Form of expected instruction(s):} @code{vtbl.8 @var{d0}, @{@var{d0}, @var{d1}@}, @var{d0}}
@end itemize
@@ -5876,7 +5876,7 @@
@itemize @bullet
-@item poly8x8_t vtbl3_p8 (poly8x8x3_t, poly8x8_t)
+@item poly8x8_t vtbl3_p8 (poly8x8x3_t, uint8x8_t)
@*@emph{Form of expected instruction(s):} @code{vtbl.8 @var{d0}, @{@var{d0}, @var{d1}, @var{d2}@}, @var{d0}}
@end itemize
@@ -5894,7 +5894,7 @@
@itemize @bullet
-@item poly8x8_t vtbl4_p8 (poly8x8x4_t, poly8x8_t)
+@item poly8x8_t vtbl4_p8 (poly8x8x4_t, uint8x8_t)
@*@emph{Form of expected instruction(s):} @code{vtbl.8 @var{d0}, @{@var{d0}, @var{d1}, @var{d2}, @var{d3}@}, @var{d0}}
@end itemize
@@ -5916,7 +5916,7 @@
@subsubsection Extended table lookup
@itemize @bullet
-@item poly8x8_t vtbx1_p8 (poly8x8_t, poly8x8_t, poly8x8_t)
+@item poly8x8_t vtbx1_p8 (poly8x8_t, poly8x8_t, uint8x8_t)
@*@emph{Form of expected instruction(s):} @code{vtbx.8 @var{d0}, @{@var{d0}@}, @var{d0}}
@end itemize
@@ -5934,7 +5934,7 @@
@itemize @bullet
-@item poly8x8_t vtbx2_p8 (poly8x8_t, poly8x8x2_t, poly8x8_t)
+@item poly8x8_t vtbx2_p8 (poly8x8_t, poly8x8x2_t, uint8x8_t)
@*@emph{Form of expected instruction(s):} @code{vtbx.8 @var{d0}, @{@var{d0}, @var{d1}@}, @var{d0}}
@end itemize
@@ -5952,7 +5952,7 @@
@itemize @bullet
-@item poly8x8_t vtbx3_p8 (poly8x8_t, poly8x8x3_t, poly8x8_t)
+@item poly8x8_t vtbx3_p8 (poly8x8_t, poly8x8x3_t, uint8x8_t)
@*@emph{Form of expected instruction(s):} @code{vtbx.8 @var{d0}, @{@var{d0}, @var{d1}, @var{d2}@}, @var{d0}}
@end itemize
@@ -5970,7 +5970,7 @@
@itemize @bullet
-@item poly8x8_t vtbx4_p8 (poly8x8_t, poly8x8x4_t, poly8x8_t)
+@item poly8x8_t vtbx4_p8 (poly8x8_t, poly8x8x4_t, uint8x8_t)
@*@emph{Form of expected instruction(s):} @code{vtbx.8 @var{d0}, @{@var{d0}, @var{d1}, @var{d2}, @var{d3}@}, @var{d0}}
@end itemize
diff --git a/gcc/testsuite/gcc.target/arm/neon/vtbl1p8.c b/gcc/testsuite/gcc.target/arm/neon/vtbl1p8.c
index c62a8bdfb53..8e22b29126d 100644
--- a/gcc/testsuite/gcc.target/arm/neon/vtbl1p8.c
+++ b/gcc/testsuite/gcc.target/arm/neon/vtbl1p8.c
@@ -11,9 +11,9 @@ void test_vtbl1p8 (void)
{
poly8x8_t out_poly8x8_t;
poly8x8_t arg0_poly8x8_t;
- poly8x8_t arg1_poly8x8_t;
+ uint8x8_t arg1_uint8x8_t;
- out_poly8x8_t = vtbl1_p8 (arg0_poly8x8_t, arg1_poly8x8_t);
+ out_poly8x8_t = vtbl1_p8 (arg0_poly8x8_t, arg1_uint8x8_t);
}
/* { dg-final { scan-assembler "vtbl\.8\[ \]+\[dD\]\[0-9\]+, ((\\\{\[dD\]\[0-9\]+\\\})|(\[dD\]\[0-9\]+)), \[dD\]\[0-9\]+!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
diff --git a/gcc/testsuite/gcc.target/arm/neon/vtbl2p8.c b/gcc/testsuite/gcc.target/arm/neon/vtbl2p8.c
index 02df3e80361..38b74e10483 100644
--- a/gcc/testsuite/gcc.target/arm/neon/vtbl2p8.c
+++ b/gcc/testsuite/gcc.target/arm/neon/vtbl2p8.c
@@ -11,9 +11,9 @@ void test_vtbl2p8 (void)
{
poly8x8_t out_poly8x8_t;
poly8x8x2_t arg0_poly8x8x2_t;
- poly8x8_t arg1_poly8x8_t;
+ uint8x8_t arg1_uint8x8_t;
- out_poly8x8_t = vtbl2_p8 (arg0_poly8x8x2_t, arg1_poly8x8_t);
+ out_poly8x8_t = vtbl2_p8 (arg0_poly8x8x2_t, arg1_uint8x8_t);
}
/* { dg-final { scan-assembler "vtbl\.8\[ \]+\[dD\]\[0-9\]+, \\\{((\[dD\]\[0-9\]+-\[dD\]\[0-9\]+)|(\[dD\]\[0-9\]+, \[dD\]\[0-9\]+))\\\}, \[dD\]\[0-9\]+!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
diff --git a/gcc/testsuite/gcc.target/arm/neon/vtbl3p8.c b/gcc/testsuite/gcc.target/arm/neon/vtbl3p8.c
index 9d6e261687b..779de43e7f0 100644
--- a/gcc/testsuite/gcc.target/arm/neon/vtbl3p8.c
+++ b/gcc/testsuite/gcc.target/arm/neon/vtbl3p8.c
@@ -11,9 +11,9 @@ void test_vtbl3p8 (void)
{
poly8x8_t out_poly8x8_t;
poly8x8x3_t arg0_poly8x8x3_t;
- poly8x8_t arg1_poly8x8_t;
+ uint8x8_t arg1_uint8x8_t;
- out_poly8x8_t = vtbl3_p8 (arg0_poly8x8x3_t, arg1_poly8x8_t);
+ out_poly8x8_t = vtbl3_p8 (arg0_poly8x8x3_t, arg1_uint8x8_t);
}
/* { dg-final { scan-assembler "vtbl\.8\[ \]+\[dD\]\[0-9\]+, \\\{((\[dD\]\[0-9\]+-\[dD\]\[0-9\]+)|(\[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+))\\\}, \[dD\]\[0-9\]+!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
diff --git a/gcc/testsuite/gcc.target/arm/neon/vtbl4p8.c b/gcc/testsuite/gcc.target/arm/neon/vtbl4p8.c
index adee3d15673..0b5cf92d51f 100644
--- a/gcc/testsuite/gcc.target/arm/neon/vtbl4p8.c
+++ b/gcc/testsuite/gcc.target/arm/neon/vtbl4p8.c
@@ -11,9 +11,9 @@ void test_vtbl4p8 (void)
{
poly8x8_t out_poly8x8_t;
poly8x8x4_t arg0_poly8x8x4_t;
- poly8x8_t arg1_poly8x8_t;
+ uint8x8_t arg1_uint8x8_t;
- out_poly8x8_t = vtbl4_p8 (arg0_poly8x8x4_t, arg1_poly8x8_t);
+ out_poly8x8_t = vtbl4_p8 (arg0_poly8x8x4_t, arg1_uint8x8_t);
}
/* { dg-final { scan-assembler "vtbl\.8\[ \]+\[dD\]\[0-9\]+, \\\{((\[dD\]\[0-9\]+-\[dD\]\[0-9\]+)|(\[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+))\\\}, \[dD\]\[0-9\]+!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
diff --git a/gcc/testsuite/gcc.target/arm/neon/vtbx1p8.c b/gcc/testsuite/gcc.target/arm/neon/vtbx1p8.c
index 97b9df6e71c..74937ff45c1 100644
--- a/gcc/testsuite/gcc.target/arm/neon/vtbx1p8.c
+++ b/gcc/testsuite/gcc.target/arm/neon/vtbx1p8.c
@@ -12,9 +12,9 @@ void test_vtbx1p8 (void)
poly8x8_t out_poly8x8_t;
poly8x8_t arg0_poly8x8_t;
poly8x8_t arg1_poly8x8_t;
- poly8x8_t arg2_poly8x8_t;
+ uint8x8_t arg2_uint8x8_t;
- out_poly8x8_t = vtbx1_p8 (arg0_poly8x8_t, arg1_poly8x8_t, arg2_poly8x8_t);
+ out_poly8x8_t = vtbx1_p8 (arg0_poly8x8_t, arg1_poly8x8_t, arg2_uint8x8_t);
}
/* { dg-final { scan-assembler "vtbx\.8\[ \]+\[dD\]\[0-9\]+, ((\\\{\[dD\]\[0-9\]+\\\})|(\[dD\]\[0-9\]+)), \[dD\]\[0-9\]+!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
diff --git a/gcc/testsuite/gcc.target/arm/neon/vtbx2p8.c b/gcc/testsuite/gcc.target/arm/neon/vtbx2p8.c
index f81b49bd846..099cbd1c0b0 100644
--- a/gcc/testsuite/gcc.target/arm/neon/vtbx2p8.c
+++ b/gcc/testsuite/gcc.target/arm/neon/vtbx2p8.c
@@ -12,9 +12,9 @@ void test_vtbx2p8 (void)
poly8x8_t out_poly8x8_t;
poly8x8_t arg0_poly8x8_t;
poly8x8x2_t arg1_poly8x8x2_t;
- poly8x8_t arg2_poly8x8_t;
+ uint8x8_t arg2_uint8x8_t;
- out_poly8x8_t = vtbx2_p8 (arg0_poly8x8_t, arg1_poly8x8x2_t, arg2_poly8x8_t);
+ out_poly8x8_t = vtbx2_p8 (arg0_poly8x8_t, arg1_poly8x8x2_t, arg2_uint8x8_t);
}
/* { dg-final { scan-assembler "vtbx\.8\[ \]+\[dD\]\[0-9\]+, \\\{((\[dD\]\[0-9\]+-\[dD\]\[0-9\]+)|(\[dD\]\[0-9\]+, \[dD\]\[0-9\]+))\\\}, \[dD\]\[0-9\]+!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
diff --git a/gcc/testsuite/gcc.target/arm/neon/vtbx3p8.c b/gcc/testsuite/gcc.target/arm/neon/vtbx3p8.c
index ab2aa2e9505..16e0b1422ab 100644
--- a/gcc/testsuite/gcc.target/arm/neon/vtbx3p8.c
+++ b/gcc/testsuite/gcc.target/arm/neon/vtbx3p8.c
@@ -12,9 +12,9 @@ void test_vtbx3p8 (void)
poly8x8_t out_poly8x8_t;
poly8x8_t arg0_poly8x8_t;
poly8x8x3_t arg1_poly8x8x3_t;
- poly8x8_t arg2_poly8x8_t;
+ uint8x8_t arg2_uint8x8_t;
- out_poly8x8_t = vtbx3_p8 (arg0_poly8x8_t, arg1_poly8x8x3_t, arg2_poly8x8_t);
+ out_poly8x8_t = vtbx3_p8 (arg0_poly8x8_t, arg1_poly8x8x3_t, arg2_uint8x8_t);
}
/* { dg-final { scan-assembler "vtbx\.8\[ \]+\[dD\]\[0-9\]+, \\\{((\[dD\]\[0-9\]+-\[dD\]\[0-9\]+)|(\[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+))\\\}, \[dD\]\[0-9\]+!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
diff --git a/gcc/testsuite/gcc.target/arm/neon/vtbx4p8.c b/gcc/testsuite/gcc.target/arm/neon/vtbx4p8.c
index a19a1dbc123..9447270d08b 100644
--- a/gcc/testsuite/gcc.target/arm/neon/vtbx4p8.c
+++ b/gcc/testsuite/gcc.target/arm/neon/vtbx4p8.c
@@ -12,9 +12,9 @@ void test_vtbx4p8 (void)
poly8x8_t out_poly8x8_t;
poly8x8_t arg0_poly8x8_t;
poly8x8x4_t arg1_poly8x8x4_t;
- poly8x8_t arg2_poly8x8_t;
+ uint8x8_t arg2_uint8x8_t;
- out_poly8x8_t = vtbx4_p8 (arg0_poly8x8_t, arg1_poly8x8x4_t, arg2_poly8x8_t);
+ out_poly8x8_t = vtbx4_p8 (arg0_poly8x8_t, arg1_poly8x8x4_t, arg2_uint8x8_t);
}
/* { dg-final { scan-assembler "vtbx\.8\[ \]+\[dD\]\[0-9\]+, \\\{((\[dD\]\[0-9\]+-\[dD\]\[0-9\]+)|(\[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+))\\\}, \[dD\]\[0-9\]+!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */