From e898463a96cef20638771d50a4a62880ea673c4b Mon Sep 17 00:00:00 2001 From: clyon Date: Fri, 6 Mar 2015 15:05:27 +0000 Subject: [PATCH] gcc/ 2015-03-06 Christophe Lyon Backport from trunk r217707. 2014-11-18 Christophe Lyon * config/arm/neon-testgen.ml (emit_prologue): Handle new compile_test_optim argument. (emit_automatics): Rename to emit_variables. Support variable indentation of its output. (compile_test_optim): New function. (test_intrinsic): Call compile_test_optim. * config/arm/neon.ml (features): Add Compiler_optim. (ops): Add Compiler_optim feature to Vbic and Vorn. (type_in_crypto_only): Replace 'or' by '||'. (reinterp): Likewise. (reinterpq): Likewise. gcc/testsuite/ 2015-03-06 Christophe Lyon Backport from trunk r217707. 2014-11-18 Christophe Lyon * gcc.target/arm/neon/vbicQs16.c: Regenerate. * gcc.target/arm/neon/vbicQs32.c: Likewise. * gcc.target/arm/neon/vbicQs64.c: Likewise. * gcc.target/arm/neon/vbicQs8.c: Likewise. * gcc.target/arm/neon/vbicQu16.c: Likewise. * gcc.target/arm/neon/vbicQu32.c: Likewise. * gcc.target/arm/neon/vbicQu64.c: Likewise. * gcc.target/arm/neon/vbicQu8.c: Likewise. * gcc.target/arm/neon/vbics16.c: Likewise. * gcc.target/arm/neon/vbics32.c: Likewise. * gcc.target/arm/neon/vbics64.c: Likewise. * gcc.target/arm/neon/vbics8.c: Likewise. * gcc.target/arm/neon/vbicu16.c: Likewise. * gcc.target/arm/neon/vbicu32.c: Likewise. * gcc.target/arm/neon/vbicu64.c: Likewise. * gcc.target/arm/neon/vbicu8.c: Likewise. * gcc.target/arm/neon/vornQs16.c: Likewise. * gcc.target/arm/neon/vornQs32.c: Likewise. * gcc.target/arm/neon/vornQs64.c: Likewise. * gcc.target/arm/neon/vornQs8.c: Likewise. * gcc.target/arm/neon/vornQu16.c: Likewise. * gcc.target/arm/neon/vornQu32.c: Likewise. * gcc.target/arm/neon/vornQu64.c: Likewise. * gcc.target/arm/neon/vornQu8.c: Likewise. * gcc.target/arm/neon/vorns16.c: Likewise. * gcc.target/arm/neon/vorns32.c: Likewise. * gcc.target/arm/neon/vorns64.c: Likewise. * gcc.target/arm/neon/vorns8.c: Likewise. * gcc.target/arm/neon/vornu16.c: Likewise. * gcc.target/arm/neon/vornu32.c: Likewise. * gcc.target/arm/neon/vornu64.c: Likewise. * gcc.target/arm/neon/vornu8.c: Likewise. Change-Id: I41608974563111a82d3113ae1973ad951b29ba29 git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/linaro/gcc-4_9-branch@221241 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/config/arm/neon-testgen.ml | 54 +++++++++++++++++++--------- gcc/config/arm/neon.ml | 20 ++++++----- gcc/testsuite/gcc.target/arm/neon/vbicQs16.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vbicQs32.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vbicQs64.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vbicQs8.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vbicQu16.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vbicQu32.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vbicQu64.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vbicQu8.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vbics16.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vbics32.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vbics64.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vbics8.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vbicu16.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vbicu32.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vbicu64.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vbicu8.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vornQs16.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vornQs32.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vornQs64.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vornQs8.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vornQu16.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vornQu32.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vornQu64.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vornQu8.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vorns16.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vorns32.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vorns64.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vorns8.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vornu16.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vornu32.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vornu64.c | 8 ++--- gcc/testsuite/gcc.target/arm/neon/vornu8.c | 8 ++--- 34 files changed, 176 insertions(+), 154 deletions(-) diff --git a/gcc/config/arm/neon-testgen.ml b/gcc/config/arm/neon-testgen.ml index df429f5..f389819 100644 --- a/gcc/config/arm/neon-testgen.ml +++ b/gcc/config/arm/neon-testgen.ml @@ -46,20 +46,19 @@ let open_test_file dir name = failwith ("Could not create test source file " ^ name ^ ": " ^ str) (* Emit prologue code to a test source file. *) -let emit_prologue chan test_name effective_target = +let emit_prologue chan test_name effective_target compile_test_optim = Printf.fprintf chan "/* Test the `%s' ARM Neon intrinsic. */\n" test_name; Printf.fprintf chan "/* This file was autogenerated by neon-testgen. */\n\n"; Printf.fprintf chan "/* { dg-do assemble } */\n"; Printf.fprintf chan "/* { dg-require-effective-target %s_ok } */\n" effective_target; - Printf.fprintf chan "/* { dg-options \"-save-temps -O0\" } */\n"; + Printf.fprintf chan "/* { dg-options \"-save-temps %s\" } */\n" compile_test_optim; Printf.fprintf chan "/* { dg-add-options %s } */\n" effective_target; - Printf.fprintf chan "\n#include \"arm_neon.h\"\n\n"; - Printf.fprintf chan "void test_%s (void)\n{\n" test_name + Printf.fprintf chan "\n#include \"arm_neon.h\"\n\n" -(* Emit declarations of local variables that are going to be passed +(* Emit declarations of variables that are going to be passed to an intrinsic, together with one to take a returned value if needed. *) -let emit_automatics chan c_types features = +let emit_variables chan c_types features spaces = let emit () = ignore ( List.fold_left (fun arg_number -> fun (flags, ty) -> @@ -69,8 +68,8 @@ let emit_automatics chan c_types features = (* Const arguments to builtins are directly written in as constants. *) if not (List.mem Const flags) then - Printf.fprintf chan " %s %sarg%d_%s;\n" - ty pointer_bit arg_number ty; + Printf.fprintf chan "%s%s %sarg%d_%s;\n" + spaces ty pointer_bit arg_number ty; arg_number + 1) 0 (List.tl c_types)) in @@ -81,13 +80,13 @@ let emit_automatics chan c_types features = allocation for vget_low tests or they fail because of copy elimination. *) ((if List.mem Fixed_vector_reg features then - Printf.fprintf chan " register %s out_%s asm (\"d18\");\n" - return_ty return_ty + Printf.fprintf chan "%sregister %s out_%s asm (\"d18\");\n" + spaces return_ty return_ty else if List.mem Fixed_core_reg features then - Printf.fprintf chan " register %s out_%s asm (\"r0\");\n" - return_ty return_ty + Printf.fprintf chan "%sregister %s out_%s asm (\"r0\");\n" + spaces return_ty return_ty else - Printf.fprintf chan " %s out_%s;\n" return_ty return_ty); + Printf.fprintf chan "%s%s out_%s;\n" spaces return_ty return_ty); emit ()) end else (* The intrinsic does not return a value. *) @@ -173,6 +172,17 @@ let effective_target features = | _ -> assert false with Not_found -> "arm_neon" +(* Work out what the testcase optimization level should be, default to -O0. *) +let compile_test_optim features = + try + match List.find (fun feature -> + match feature with Compiler_optim _ -> true + | _ -> false) + features with + Compiler_optim opt -> opt + | _ -> assert false + with Not_found -> "-O0" + (* Given an intrinsic shape, produce a regexp that will match the right-hand sides of instructions generated by an intrinsic of that shape. *) @@ -280,12 +290,22 @@ let test_intrinsic dir opcode features shape name munge elt_ty = "!?\\(\\[ \t\\]+@\\[a-zA-Z0-9 \\]+\\)?\\n") (analyze_all_shapes features shape analyze_shape) in - let effective_target = effective_target features + let effective_target = effective_target features in + let compile_test_optim = compile_test_optim features in (* Emit file and function prologues. *) - emit_prologue chan test_name effective_target; - (* Emit local variable declarations. *) - emit_automatics chan c_types features; + emit_prologue chan test_name effective_target compile_test_optim; + + if (compare compile_test_optim "-O0") <> 0 then + (* Emit variable declarations. *) + emit_variables chan c_types features ""; + + Printf.fprintf chan "void test_%s (void)\n{\n" test_name; + + if compare compile_test_optim "-O0" = 0 then + (* Emit variable declarations. *) + emit_variables chan c_types features " "; + Printf.fprintf chan "\n"; (* Emit the call to the intrinsic. *) emit_call chan const_valuator c_types name elt_ty; diff --git a/gcc/config/arm/neon.ml b/gcc/config/arm/neon.ml index 4289b8c..e16e2b0 100644 --- a/gcc/config/arm/neon.ml +++ b/gcc/config/arm/neon.ml @@ -294,6 +294,8 @@ type features = (* Mark that the intrinsic requires a particular bit in __ARM_FP to be set. *) | Requires_FP_bit of int + (* Compiler optimization level for the test. *) + | Compiler_optim of string exception MixedMode of elts * elts @@ -1941,18 +1943,18 @@ let ops = Veor, [], All (3, Qreg), "veorQ", notype_2, su_8_64; (* Bic (And-not). *) - Vbic, [], All (3, Dreg), "vbic", notype_2, su_8_32; - Vbic, [No_op], All (3, Dreg), "vbic", notype_2, [S64; U64]; - Vbic, [], All (3, Qreg), "vbicQ", notype_2, su_8_64; + Vbic, [Compiler_optim "-O2"], All (3, Dreg), "vbic", notype_2, su_8_32; + Vbic, [No_op; Compiler_optim "-O2"], All (3, Dreg), "vbic", notype_2, [S64; U64]; + Vbic, [Compiler_optim "-O2"], All (3, Qreg), "vbicQ", notype_2, su_8_64; (* Or-not. *) - Vorn, [], All (3, Dreg), "vorn", notype_2, su_8_32; - Vorn, [No_op], All (3, Dreg), "vorn", notype_2, [S64; U64]; - Vorn, [], All (3, Qreg), "vornQ", notype_2, su_8_64; + Vorn, [Compiler_optim "-O2"], All (3, Dreg), "vorn", notype_2, su_8_32; + Vorn, [No_op; Compiler_optim "-O2"], All (3, Dreg), "vorn", notype_2, [S64; U64]; + Vorn, [Compiler_optim "-O2"], All (3, Qreg), "vornQ", notype_2, su_8_64; ] let type_in_crypto_only t - = (t == P64) or (t == P128) + = (t == P64) || (t == P128) let cross_product s1 s2 = List.filter (fun (e, e') -> e <> e') @@ -1963,7 +1965,7 @@ let reinterp = let casts = cross_product elems elems in List.map (fun (convto, convfrom) -> - Vreinterp, (if (type_in_crypto_only convto) or (type_in_crypto_only convfrom) + Vreinterp, (if (type_in_crypto_only convto) || (type_in_crypto_only convfrom) then [Requires_feature "CRYPTO"] else []) @ [No_op], Use_operands [| Dreg; Dreg |], "vreinterpret", conv_1, [Cast (convto, convfrom)]) casts @@ -1973,7 +1975,7 @@ let reinterpq = let casts = cross_product elems elems in List.map (fun (convto, convfrom) -> - Vreinterp, (if (type_in_crypto_only convto) or (type_in_crypto_only convfrom) + Vreinterp, (if (type_in_crypto_only convto) || (type_in_crypto_only convfrom) then [Requires_feature "CRYPTO"] else []) @ [No_op], Use_operands [| Qreg; Qreg |], "vreinterpretQ", conv_1, [Cast (convto, convfrom)]) casts diff --git a/gcc/testsuite/gcc.target/arm/neon/vbicQs16.c b/gcc/testsuite/gcc.target/arm/neon/vbicQs16.c index e15a260..c8c026f 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vbicQs16.c +++ b/gcc/testsuite/gcc.target/arm/neon/vbicQs16.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +int16x8_t out_int16x8_t; +int16x8_t arg0_int16x8_t; +int16x8_t arg1_int16x8_t; void test_vbicQs16 (void) { - int16x8_t out_int16x8_t; - int16x8_t arg0_int16x8_t; - int16x8_t arg1_int16x8_t; out_int16x8_t = vbicq_s16 (arg0_int16x8_t, arg1_int16x8_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vbicQs32.c b/gcc/testsuite/gcc.target/arm/neon/vbicQs32.c index f376bf0..3b85857 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vbicQs32.c +++ b/gcc/testsuite/gcc.target/arm/neon/vbicQs32.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +int32x4_t out_int32x4_t; +int32x4_t arg0_int32x4_t; +int32x4_t arg1_int32x4_t; void test_vbicQs32 (void) { - int32x4_t out_int32x4_t; - int32x4_t arg0_int32x4_t; - int32x4_t arg1_int32x4_t; out_int32x4_t = vbicq_s32 (arg0_int32x4_t, arg1_int32x4_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vbicQs64.c b/gcc/testsuite/gcc.target/arm/neon/vbicQs64.c index 87049f1..d71da87 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vbicQs64.c +++ b/gcc/testsuite/gcc.target/arm/neon/vbicQs64.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +int64x2_t out_int64x2_t; +int64x2_t arg0_int64x2_t; +int64x2_t arg1_int64x2_t; void test_vbicQs64 (void) { - int64x2_t out_int64x2_t; - int64x2_t arg0_int64x2_t; - int64x2_t arg1_int64x2_t; out_int64x2_t = vbicq_s64 (arg0_int64x2_t, arg1_int64x2_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vbicQs8.c b/gcc/testsuite/gcc.target/arm/neon/vbicQs8.c index 4f64e88..4cbfe9f 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vbicQs8.c +++ b/gcc/testsuite/gcc.target/arm/neon/vbicQs8.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +int8x16_t out_int8x16_t; +int8x16_t arg0_int8x16_t; +int8x16_t arg1_int8x16_t; void test_vbicQs8 (void) { - int8x16_t out_int8x16_t; - int8x16_t arg0_int8x16_t; - int8x16_t arg1_int8x16_t; out_int8x16_t = vbicq_s8 (arg0_int8x16_t, arg1_int8x16_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vbicQu16.c b/gcc/testsuite/gcc.target/arm/neon/vbicQu16.c index f92f9b3..6661c51 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vbicQu16.c +++ b/gcc/testsuite/gcc.target/arm/neon/vbicQu16.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +uint16x8_t out_uint16x8_t; +uint16x8_t arg0_uint16x8_t; +uint16x8_t arg1_uint16x8_t; void test_vbicQu16 (void) { - uint16x8_t out_uint16x8_t; - uint16x8_t arg0_uint16x8_t; - uint16x8_t arg1_uint16x8_t; out_uint16x8_t = vbicq_u16 (arg0_uint16x8_t, arg1_uint16x8_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vbicQu32.c b/gcc/testsuite/gcc.target/arm/neon/vbicQu32.c index 06d10da..ca8391e 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vbicQu32.c +++ b/gcc/testsuite/gcc.target/arm/neon/vbicQu32.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +uint32x4_t out_uint32x4_t; +uint32x4_t arg0_uint32x4_t; +uint32x4_t arg1_uint32x4_t; void test_vbicQu32 (void) { - uint32x4_t out_uint32x4_t; - uint32x4_t arg0_uint32x4_t; - uint32x4_t arg1_uint32x4_t; out_uint32x4_t = vbicq_u32 (arg0_uint32x4_t, arg1_uint32x4_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vbicQu64.c b/gcc/testsuite/gcc.target/arm/neon/vbicQu64.c index 7cd63c0..d565333 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vbicQu64.c +++ b/gcc/testsuite/gcc.target/arm/neon/vbicQu64.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +uint64x2_t out_uint64x2_t; +uint64x2_t arg0_uint64x2_t; +uint64x2_t arg1_uint64x2_t; void test_vbicQu64 (void) { - uint64x2_t out_uint64x2_t; - uint64x2_t arg0_uint64x2_t; - uint64x2_t arg1_uint64x2_t; out_uint64x2_t = vbicq_u64 (arg0_uint64x2_t, arg1_uint64x2_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vbicQu8.c b/gcc/testsuite/gcc.target/arm/neon/vbicQu8.c index 3f44418..d9f18ed 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vbicQu8.c +++ b/gcc/testsuite/gcc.target/arm/neon/vbicQu8.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +uint8x16_t out_uint8x16_t; +uint8x16_t arg0_uint8x16_t; +uint8x16_t arg1_uint8x16_t; void test_vbicQu8 (void) { - uint8x16_t out_uint8x16_t; - uint8x16_t arg0_uint8x16_t; - uint8x16_t arg1_uint8x16_t; out_uint8x16_t = vbicq_u8 (arg0_uint8x16_t, arg1_uint8x16_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vbics16.c b/gcc/testsuite/gcc.target/arm/neon/vbics16.c index 943e305..7247878 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vbics16.c +++ b/gcc/testsuite/gcc.target/arm/neon/vbics16.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +int16x4_t out_int16x4_t; +int16x4_t arg0_int16x4_t; +int16x4_t arg1_int16x4_t; void test_vbics16 (void) { - int16x4_t out_int16x4_t; - int16x4_t arg0_int16x4_t; - int16x4_t arg1_int16x4_t; out_int16x4_t = vbic_s16 (arg0_int16x4_t, arg1_int16x4_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vbics32.c b/gcc/testsuite/gcc.target/arm/neon/vbics32.c index 30df639..585d2ef 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vbics32.c +++ b/gcc/testsuite/gcc.target/arm/neon/vbics32.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +int32x2_t out_int32x2_t; +int32x2_t arg0_int32x2_t; +int32x2_t arg1_int32x2_t; void test_vbics32 (void) { - int32x2_t out_int32x2_t; - int32x2_t arg0_int32x2_t; - int32x2_t arg1_int32x2_t; out_int32x2_t = vbic_s32 (arg0_int32x2_t, arg1_int32x2_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vbics64.c b/gcc/testsuite/gcc.target/arm/neon/vbics64.c index 379db45..8932a28 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vbics64.c +++ b/gcc/testsuite/gcc.target/arm/neon/vbics64.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +int64x1_t out_int64x1_t; +int64x1_t arg0_int64x1_t; +int64x1_t arg1_int64x1_t; void test_vbics64 (void) { - int64x1_t out_int64x1_t; - int64x1_t arg0_int64x1_t; - int64x1_t arg1_int64x1_t; out_int64x1_t = vbic_s64 (arg0_int64x1_t, arg1_int64x1_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vbics8.c b/gcc/testsuite/gcc.target/arm/neon/vbics8.c index 3b4bc8a..9a1839a 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vbics8.c +++ b/gcc/testsuite/gcc.target/arm/neon/vbics8.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +int8x8_t out_int8x8_t; +int8x8_t arg0_int8x8_t; +int8x8_t arg1_int8x8_t; void test_vbics8 (void) { - int8x8_t out_int8x8_t; - int8x8_t arg0_int8x8_t; - int8x8_t arg1_int8x8_t; out_int8x8_t = vbic_s8 (arg0_int8x8_t, arg1_int8x8_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vbicu16.c b/gcc/testsuite/gcc.target/arm/neon/vbicu16.c index e9952bc..3f3002b 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vbicu16.c +++ b/gcc/testsuite/gcc.target/arm/neon/vbicu16.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +uint16x4_t out_uint16x4_t; +uint16x4_t arg0_uint16x4_t; +uint16x4_t arg1_uint16x4_t; void test_vbicu16 (void) { - uint16x4_t out_uint16x4_t; - uint16x4_t arg0_uint16x4_t; - uint16x4_t arg1_uint16x4_t; out_uint16x4_t = vbic_u16 (arg0_uint16x4_t, arg1_uint16x4_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vbicu32.c b/gcc/testsuite/gcc.target/arm/neon/vbicu32.c index 9334f40..0653d6d 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vbicu32.c +++ b/gcc/testsuite/gcc.target/arm/neon/vbicu32.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +uint32x2_t out_uint32x2_t; +uint32x2_t arg0_uint32x2_t; +uint32x2_t arg1_uint32x2_t; void test_vbicu32 (void) { - uint32x2_t out_uint32x2_t; - uint32x2_t arg0_uint32x2_t; - uint32x2_t arg1_uint32x2_t; out_uint32x2_t = vbic_u32 (arg0_uint32x2_t, arg1_uint32x2_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vbicu64.c b/gcc/testsuite/gcc.target/arm/neon/vbicu64.c index c276d65..7d05713 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vbicu64.c +++ b/gcc/testsuite/gcc.target/arm/neon/vbicu64.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +uint64x1_t out_uint64x1_t; +uint64x1_t arg0_uint64x1_t; +uint64x1_t arg1_uint64x1_t; void test_vbicu64 (void) { - uint64x1_t out_uint64x1_t; - uint64x1_t arg0_uint64x1_t; - uint64x1_t arg1_uint64x1_t; out_uint64x1_t = vbic_u64 (arg0_uint64x1_t, arg1_uint64x1_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vbicu8.c b/gcc/testsuite/gcc.target/arm/neon/vbicu8.c index 5e42c52..10c70b0 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vbicu8.c +++ b/gcc/testsuite/gcc.target/arm/neon/vbicu8.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +uint8x8_t out_uint8x8_t; +uint8x8_t arg0_uint8x8_t; +uint8x8_t arg1_uint8x8_t; void test_vbicu8 (void) { - uint8x8_t out_uint8x8_t; - uint8x8_t arg0_uint8x8_t; - uint8x8_t arg1_uint8x8_t; out_uint8x8_t = vbic_u8 (arg0_uint8x8_t, arg1_uint8x8_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vornQs16.c b/gcc/testsuite/gcc.target/arm/neon/vornQs16.c index 519da3c..2e63564 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vornQs16.c +++ b/gcc/testsuite/gcc.target/arm/neon/vornQs16.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +int16x8_t out_int16x8_t; +int16x8_t arg0_int16x8_t; +int16x8_t arg1_int16x8_t; void test_vornQs16 (void) { - int16x8_t out_int16x8_t; - int16x8_t arg0_int16x8_t; - int16x8_t arg1_int16x8_t; out_int16x8_t = vornq_s16 (arg0_int16x8_t, arg1_int16x8_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vornQs32.c b/gcc/testsuite/gcc.target/arm/neon/vornQs32.c index cec6599..339514b 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vornQs32.c +++ b/gcc/testsuite/gcc.target/arm/neon/vornQs32.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +int32x4_t out_int32x4_t; +int32x4_t arg0_int32x4_t; +int32x4_t arg1_int32x4_t; void test_vornQs32 (void) { - int32x4_t out_int32x4_t; - int32x4_t arg0_int32x4_t; - int32x4_t arg1_int32x4_t; out_int32x4_t = vornq_s32 (arg0_int32x4_t, arg1_int32x4_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vornQs64.c b/gcc/testsuite/gcc.target/arm/neon/vornQs64.c index 05166ba..64d6269 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vornQs64.c +++ b/gcc/testsuite/gcc.target/arm/neon/vornQs64.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +int64x2_t out_int64x2_t; +int64x2_t arg0_int64x2_t; +int64x2_t arg1_int64x2_t; void test_vornQs64 (void) { - int64x2_t out_int64x2_t; - int64x2_t arg0_int64x2_t; - int64x2_t arg1_int64x2_t; out_int64x2_t = vornq_s64 (arg0_int64x2_t, arg1_int64x2_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vornQs8.c b/gcc/testsuite/gcc.target/arm/neon/vornQs8.c index 99982ae..c8b1ed2 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vornQs8.c +++ b/gcc/testsuite/gcc.target/arm/neon/vornQs8.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +int8x16_t out_int8x16_t; +int8x16_t arg0_int8x16_t; +int8x16_t arg1_int8x16_t; void test_vornQs8 (void) { - int8x16_t out_int8x16_t; - int8x16_t arg0_int8x16_t; - int8x16_t arg1_int8x16_t; out_int8x16_t = vornq_s8 (arg0_int8x16_t, arg1_int8x16_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vornQu16.c b/gcc/testsuite/gcc.target/arm/neon/vornQu16.c index 761e72d..c066367 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vornQu16.c +++ b/gcc/testsuite/gcc.target/arm/neon/vornQu16.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +uint16x8_t out_uint16x8_t; +uint16x8_t arg0_uint16x8_t; +uint16x8_t arg1_uint16x8_t; void test_vornQu16 (void) { - uint16x8_t out_uint16x8_t; - uint16x8_t arg0_uint16x8_t; - uint16x8_t arg1_uint16x8_t; out_uint16x8_t = vornq_u16 (arg0_uint16x8_t, arg1_uint16x8_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vornQu32.c b/gcc/testsuite/gcc.target/arm/neon/vornQu32.c index 18a9685..7a278e0 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vornQu32.c +++ b/gcc/testsuite/gcc.target/arm/neon/vornQu32.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +uint32x4_t out_uint32x4_t; +uint32x4_t arg0_uint32x4_t; +uint32x4_t arg1_uint32x4_t; void test_vornQu32 (void) { - uint32x4_t out_uint32x4_t; - uint32x4_t arg0_uint32x4_t; - uint32x4_t arg1_uint32x4_t; out_uint32x4_t = vornq_u32 (arg0_uint32x4_t, arg1_uint32x4_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vornQu64.c b/gcc/testsuite/gcc.target/arm/neon/vornQu64.c index 84c9f89..7948e10 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vornQu64.c +++ b/gcc/testsuite/gcc.target/arm/neon/vornQu64.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +uint64x2_t out_uint64x2_t; +uint64x2_t arg0_uint64x2_t; +uint64x2_t arg1_uint64x2_t; void test_vornQu64 (void) { - uint64x2_t out_uint64x2_t; - uint64x2_t arg0_uint64x2_t; - uint64x2_t arg1_uint64x2_t; out_uint64x2_t = vornq_u64 (arg0_uint64x2_t, arg1_uint64x2_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vornQu8.c b/gcc/testsuite/gcc.target/arm/neon/vornQu8.c index ffe6766..31aa62c 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vornQu8.c +++ b/gcc/testsuite/gcc.target/arm/neon/vornQu8.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +uint8x16_t out_uint8x16_t; +uint8x16_t arg0_uint8x16_t; +uint8x16_t arg1_uint8x16_t; void test_vornQu8 (void) { - uint8x16_t out_uint8x16_t; - uint8x16_t arg0_uint8x16_t; - uint8x16_t arg1_uint8x16_t; out_uint8x16_t = vornq_u8 (arg0_uint8x16_t, arg1_uint8x16_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vorns16.c b/gcc/testsuite/gcc.target/arm/neon/vorns16.c index b860142..375a0e9 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vorns16.c +++ b/gcc/testsuite/gcc.target/arm/neon/vorns16.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +int16x4_t out_int16x4_t; +int16x4_t arg0_int16x4_t; +int16x4_t arg1_int16x4_t; void test_vorns16 (void) { - int16x4_t out_int16x4_t; - int16x4_t arg0_int16x4_t; - int16x4_t arg1_int16x4_t; out_int16x4_t = vorn_s16 (arg0_int16x4_t, arg1_int16x4_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vorns32.c b/gcc/testsuite/gcc.target/arm/neon/vorns32.c index 826e0d2..502b9ac 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vorns32.c +++ b/gcc/testsuite/gcc.target/arm/neon/vorns32.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +int32x2_t out_int32x2_t; +int32x2_t arg0_int32x2_t; +int32x2_t arg1_int32x2_t; void test_vorns32 (void) { - int32x2_t out_int32x2_t; - int32x2_t arg0_int32x2_t; - int32x2_t arg1_int32x2_t; out_int32x2_t = vorn_s32 (arg0_int32x2_t, arg1_int32x2_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vorns64.c b/gcc/testsuite/gcc.target/arm/neon/vorns64.c index d7b8e60..090e9d4 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vorns64.c +++ b/gcc/testsuite/gcc.target/arm/neon/vorns64.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +int64x1_t out_int64x1_t; +int64x1_t arg0_int64x1_t; +int64x1_t arg1_int64x1_t; void test_vorns64 (void) { - int64x1_t out_int64x1_t; - int64x1_t arg0_int64x1_t; - int64x1_t arg1_int64x1_t; out_int64x1_t = vorn_s64 (arg0_int64x1_t, arg1_int64x1_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vorns8.c b/gcc/testsuite/gcc.target/arm/neon/vorns8.c index c71a6bb..d50afc8 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vorns8.c +++ b/gcc/testsuite/gcc.target/arm/neon/vorns8.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +int8x8_t out_int8x8_t; +int8x8_t arg0_int8x8_t; +int8x8_t arg1_int8x8_t; void test_vorns8 (void) { - int8x8_t out_int8x8_t; - int8x8_t arg0_int8x8_t; - int8x8_t arg1_int8x8_t; out_int8x8_t = vorn_s8 (arg0_int8x8_t, arg1_int8x8_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vornu16.c b/gcc/testsuite/gcc.target/arm/neon/vornu16.c index d4983ee..d20bffc 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vornu16.c +++ b/gcc/testsuite/gcc.target/arm/neon/vornu16.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +uint16x4_t out_uint16x4_t; +uint16x4_t arg0_uint16x4_t; +uint16x4_t arg1_uint16x4_t; void test_vornu16 (void) { - uint16x4_t out_uint16x4_t; - uint16x4_t arg0_uint16x4_t; - uint16x4_t arg1_uint16x4_t; out_uint16x4_t = vorn_u16 (arg0_uint16x4_t, arg1_uint16x4_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vornu32.c b/gcc/testsuite/gcc.target/arm/neon/vornu32.c index aba6884..f17394f 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vornu32.c +++ b/gcc/testsuite/gcc.target/arm/neon/vornu32.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +uint32x2_t out_uint32x2_t; +uint32x2_t arg0_uint32x2_t; +uint32x2_t arg1_uint32x2_t; void test_vornu32 (void) { - uint32x2_t out_uint32x2_t; - uint32x2_t arg0_uint32x2_t; - uint32x2_t arg1_uint32x2_t; out_uint32x2_t = vorn_u32 (arg0_uint32x2_t, arg1_uint32x2_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vornu64.c b/gcc/testsuite/gcc.target/arm/neon/vornu64.c index 6fb3a95..86af5c5 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vornu64.c +++ b/gcc/testsuite/gcc.target/arm/neon/vornu64.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +uint64x1_t out_uint64x1_t; +uint64x1_t arg0_uint64x1_t; +uint64x1_t arg1_uint64x1_t; void test_vornu64 (void) { - uint64x1_t out_uint64x1_t; - uint64x1_t arg0_uint64x1_t; - uint64x1_t arg1_uint64x1_t; out_uint64x1_t = vorn_u64 (arg0_uint64x1_t, arg1_uint64x1_t); } diff --git a/gcc/testsuite/gcc.target/arm/neon/vornu8.c b/gcc/testsuite/gcc.target/arm/neon/vornu8.c index 6fdb733..347f9c8 100644 --- a/gcc/testsuite/gcc.target/arm/neon/vornu8.c +++ b/gcc/testsuite/gcc.target/arm/neon/vornu8.c @@ -3,16 +3,16 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_neon_ok } */ -/* { dg-options "-save-temps -O0" } */ +/* { dg-options "-save-temps -O2" } */ /* { dg-add-options arm_neon } */ #include "arm_neon.h" +uint8x8_t out_uint8x8_t; +uint8x8_t arg0_uint8x8_t; +uint8x8_t arg1_uint8x8_t; void test_vornu8 (void) { - uint8x8_t out_uint8x8_t; - uint8x8_t arg0_uint8x8_t; - uint8x8_t arg1_uint8x8_t; out_uint8x8_t = vorn_u8 (arg0_uint8x8_t, arg1_uint8x8_t); } -- 2.7.4