AVX512: Restrict default masks for prefetch gather/scatter
instructions. gcc/ PR target/69228 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"): Change first operand predicate from register_or_constm1_operand to register_operand. (define_expand "avx512pf_gatherpf<mode>df"): Likewise. (define_expand "avx512pf_scatterpf<mode>sf"): Likewise. (define_expand "avx512pf_scatterpf<mode>df"): Likewise. (define_insn "*avx512pf_gatherpf<mode>sf"): Remove. (define_insn "*avx512pf_gatherpf<mode>df"): Likewise. (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise. (define_insn "*avx512pf_scatterpf<mode>df"): Likewise. * config/i386/i386.c (ix86_expand_builtin): Remove first operand comparison with constm1_rtx from vec_prefetch_gen part. gcc/testsuite PR target/69228 * gcc.target/i386/avx512pf-vscatterpf0dpd-1.c: Adjust. * gcc.target/i386/avx512pf-vscatterpf0dps-1.c: Likewise. * gcc.target/i386/avx512pf-vscatterpf0qpd-1.c: Likewise. * gcc.target/i386/avx512pf-vscatterpf0qps-1.c: Likewise. * gcc.target/i386/avx512pf-vscatterpf1dpd-1.c: Likewise. * gcc.target/i386/avx512pf-vscatterpf1dps-1.c: Likewise. * gcc.target/i386/avx512pf-vscatterpf1qpd-1.c: Likewise. * gcc.target/i386/avx512pf-vscatterpf1qps-1.c: Likewise. From-SVN: r232324
This commit is contained in:
parent
629e47295b
commit
8866d62c0a
|
@ -1,3 +1,19 @@
|
||||||
|
2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
|
||||||
|
|
||||||
|
PR target/69228
|
||||||
|
* config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
|
||||||
|
Change first operand predicate from register_or_constm1_operand
|
||||||
|
to register_operand.
|
||||||
|
(define_expand "avx512pf_gatherpf<mode>df"): Likewise.
|
||||||
|
(define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
|
||||||
|
(define_expand "avx512pf_scatterpf<mode>df"): Likewise.
|
||||||
|
(define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
|
||||||
|
(define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
|
||||||
|
(define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
|
||||||
|
(define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
|
||||||
|
* config/i386/i386.c (ix86_expand_builtin): Remove first operand
|
||||||
|
comparison with constm1_rtx from vec_prefetch_gen part.
|
||||||
|
|
||||||
2016-01-13 Richard Biener <rguenther@suse.de>
|
2016-01-13 Richard Biener <rguenther@suse.de>
|
||||||
|
|
||||||
PR tree-optimization/69013
|
PR tree-optimization/69013
|
||||||
|
|
|
@ -41828,13 +41828,12 @@ rdseed_step:
|
||||||
|
|
||||||
op0 = fixup_modeless_constant (op0, mode0);
|
op0 = fixup_modeless_constant (op0, mode0);
|
||||||
|
|
||||||
if (GET_MODE (op0) == mode0
|
if (GET_MODE (op0) == mode0 || GET_MODE (op0) == VOIDmode)
|
||||||
|| (GET_MODE (op0) == VOIDmode && op0 != constm1_rtx))
|
|
||||||
{
|
{
|
||||||
if (!insn_data[icode].operand[0].predicate (op0, mode0))
|
if (!insn_data[icode].operand[0].predicate (op0, mode0))
|
||||||
op0 = copy_to_mode_reg (mode0, op0);
|
op0 = copy_to_mode_reg (mode0, op0);
|
||||||
}
|
}
|
||||||
else if (op0 != constm1_rtx)
|
else
|
||||||
{
|
{
|
||||||
op0 = copy_to_reg (op0);
|
op0 = copy_to_reg (op0);
|
||||||
op0 = simplify_gen_subreg (mode0, op0, GET_MODE (op0), 0);
|
op0 = simplify_gen_subreg (mode0, op0, GET_MODE (op0), 0);
|
||||||
|
|
|
@ -15654,7 +15654,7 @@
|
||||||
|
|
||||||
(define_expand "avx512pf_gatherpf<mode>sf"
|
(define_expand "avx512pf_gatherpf<mode>sf"
|
||||||
[(unspec
|
[(unspec
|
||||||
[(match_operand:<avx512fmaskmode> 0 "register_or_constm1_operand")
|
[(match_operand:<avx512fmaskmode> 0 "register_operand")
|
||||||
(mem:<GATHER_SCATTER_SF_MEM_MODE>
|
(mem:<GATHER_SCATTER_SF_MEM_MODE>
|
||||||
(match_par_dup 5
|
(match_par_dup 5
|
||||||
[(match_operand 2 "vsib_address_operand")
|
[(match_operand 2 "vsib_address_operand")
|
||||||
|
@ -15696,37 +15696,10 @@
|
||||||
(set_attr "prefix" "evex")
|
(set_attr "prefix" "evex")
|
||||||
(set_attr "mode" "XI")])
|
(set_attr "mode" "XI")])
|
||||||
|
|
||||||
(define_insn "*avx512pf_gatherpf<mode>sf"
|
|
||||||
[(unspec
|
|
||||||
[(const_int -1)
|
|
||||||
(match_operator:<GATHER_SCATTER_SF_MEM_MODE> 4 "vsib_mem_operator"
|
|
||||||
[(unspec:P
|
|
||||||
[(match_operand:P 1 "vsib_address_operand" "Tv")
|
|
||||||
(match_operand:VI48_512 0 "register_operand" "v")
|
|
||||||
(match_operand:SI 2 "const1248_operand" "n")]
|
|
||||||
UNSPEC_VSIBADDR)])
|
|
||||||
(match_operand:SI 3 "const_2_to_3_operand" "n")]
|
|
||||||
UNSPEC_GATHER_PREFETCH)]
|
|
||||||
"TARGET_AVX512PF"
|
|
||||||
{
|
|
||||||
switch (INTVAL (operands[3]))
|
|
||||||
{
|
|
||||||
case 3:
|
|
||||||
return "vgatherpf0<ssemodesuffix>ps\t{%4|%4}";
|
|
||||||
case 2:
|
|
||||||
return "vgatherpf1<ssemodesuffix>ps\t{%4|%4}";
|
|
||||||
default:
|
|
||||||
gcc_unreachable ();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[(set_attr "type" "sse")
|
|
||||||
(set_attr "prefix" "evex")
|
|
||||||
(set_attr "mode" "XI")])
|
|
||||||
|
|
||||||
;; Packed double variants
|
;; Packed double variants
|
||||||
(define_expand "avx512pf_gatherpf<mode>df"
|
(define_expand "avx512pf_gatherpf<mode>df"
|
||||||
[(unspec
|
[(unspec
|
||||||
[(match_operand:<avx512fmaskmode> 0 "register_or_constm1_operand")
|
[(match_operand:<avx512fmaskmode> 0 "register_operand")
|
||||||
(mem:V8DF
|
(mem:V8DF
|
||||||
(match_par_dup 5
|
(match_par_dup 5
|
||||||
[(match_operand 2 "vsib_address_operand")
|
[(match_operand 2 "vsib_address_operand")
|
||||||
|
@ -15768,37 +15741,10 @@
|
||||||
(set_attr "prefix" "evex")
|
(set_attr "prefix" "evex")
|
||||||
(set_attr "mode" "XI")])
|
(set_attr "mode" "XI")])
|
||||||
|
|
||||||
(define_insn "*avx512pf_gatherpf<mode>df"
|
|
||||||
[(unspec
|
|
||||||
[(const_int -1)
|
|
||||||
(match_operator:V8DF 4 "vsib_mem_operator"
|
|
||||||
[(unspec:P
|
|
||||||
[(match_operand:P 1 "vsib_address_operand" "Tv")
|
|
||||||
(match_operand:VI4_256_8_512 0 "register_operand" "v")
|
|
||||||
(match_operand:SI 2 "const1248_operand" "n")]
|
|
||||||
UNSPEC_VSIBADDR)])
|
|
||||||
(match_operand:SI 3 "const_2_to_3_operand" "n")]
|
|
||||||
UNSPEC_GATHER_PREFETCH)]
|
|
||||||
"TARGET_AVX512PF"
|
|
||||||
{
|
|
||||||
switch (INTVAL (operands[3]))
|
|
||||||
{
|
|
||||||
case 3:
|
|
||||||
return "vgatherpf0<ssemodesuffix>pd\t{%4|%4}";
|
|
||||||
case 2:
|
|
||||||
return "vgatherpf1<ssemodesuffix>pd\t{%4|%4}";
|
|
||||||
default:
|
|
||||||
gcc_unreachable ();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[(set_attr "type" "sse")
|
|
||||||
(set_attr "prefix" "evex")
|
|
||||||
(set_attr "mode" "XI")])
|
|
||||||
|
|
||||||
;; Packed float variants
|
;; Packed float variants
|
||||||
(define_expand "avx512pf_scatterpf<mode>sf"
|
(define_expand "avx512pf_scatterpf<mode>sf"
|
||||||
[(unspec
|
[(unspec
|
||||||
[(match_operand:<avx512fmaskmode> 0 "register_or_constm1_operand")
|
[(match_operand:<avx512fmaskmode> 0 "register_operand")
|
||||||
(mem:<GATHER_SCATTER_SF_MEM_MODE>
|
(mem:<GATHER_SCATTER_SF_MEM_MODE>
|
||||||
(match_par_dup 5
|
(match_par_dup 5
|
||||||
[(match_operand 2 "vsib_address_operand")
|
[(match_operand 2 "vsib_address_operand")
|
||||||
|
@ -15842,39 +15788,10 @@
|
||||||
(set_attr "prefix" "evex")
|
(set_attr "prefix" "evex")
|
||||||
(set_attr "mode" "XI")])
|
(set_attr "mode" "XI")])
|
||||||
|
|
||||||
(define_insn "*avx512pf_scatterpf<mode>sf"
|
|
||||||
[(unspec
|
|
||||||
[(const_int -1)
|
|
||||||
(match_operator:<GATHER_SCATTER_SF_MEM_MODE> 4 "vsib_mem_operator"
|
|
||||||
[(unspec:P
|
|
||||||
[(match_operand:P 1 "vsib_address_operand" "Tv")
|
|
||||||
(match_operand:VI48_512 0 "register_operand" "v")
|
|
||||||
(match_operand:SI 2 "const1248_operand" "n")]
|
|
||||||
UNSPEC_VSIBADDR)])
|
|
||||||
(match_operand:SI 3 "const2367_operand" "n")]
|
|
||||||
UNSPEC_SCATTER_PREFETCH)]
|
|
||||||
"TARGET_AVX512PF"
|
|
||||||
{
|
|
||||||
switch (INTVAL (operands[3]))
|
|
||||||
{
|
|
||||||
case 3:
|
|
||||||
case 7:
|
|
||||||
return "vscatterpf0<ssemodesuffix>ps\t{%4|%4}";
|
|
||||||
case 2:
|
|
||||||
case 6:
|
|
||||||
return "vscatterpf1<ssemodesuffix>ps\t{%4|%4}";
|
|
||||||
default:
|
|
||||||
gcc_unreachable ();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[(set_attr "type" "sse")
|
|
||||||
(set_attr "prefix" "evex")
|
|
||||||
(set_attr "mode" "XI")])
|
|
||||||
|
|
||||||
;; Packed double variants
|
;; Packed double variants
|
||||||
(define_expand "avx512pf_scatterpf<mode>df"
|
(define_expand "avx512pf_scatterpf<mode>df"
|
||||||
[(unspec
|
[(unspec
|
||||||
[(match_operand:<avx512fmaskmode> 0 "register_or_constm1_operand")
|
[(match_operand:<avx512fmaskmode> 0 "register_operand")
|
||||||
(mem:V8DF
|
(mem:V8DF
|
||||||
(match_par_dup 5
|
(match_par_dup 5
|
||||||
[(match_operand 2 "vsib_address_operand")
|
[(match_operand 2 "vsib_address_operand")
|
||||||
|
@ -15918,35 +15835,6 @@
|
||||||
(set_attr "prefix" "evex")
|
(set_attr "prefix" "evex")
|
||||||
(set_attr "mode" "XI")])
|
(set_attr "mode" "XI")])
|
||||||
|
|
||||||
(define_insn "*avx512pf_scatterpf<mode>df"
|
|
||||||
[(unspec
|
|
||||||
[(const_int -1)
|
|
||||||
(match_operator:V8DF 4 "vsib_mem_operator"
|
|
||||||
[(unspec:P
|
|
||||||
[(match_operand:P 1 "vsib_address_operand" "Tv")
|
|
||||||
(match_operand:VI4_256_8_512 0 "register_operand" "v")
|
|
||||||
(match_operand:SI 2 "const1248_operand" "n")]
|
|
||||||
UNSPEC_VSIBADDR)])
|
|
||||||
(match_operand:SI 3 "const2367_operand" "n")]
|
|
||||||
UNSPEC_SCATTER_PREFETCH)]
|
|
||||||
"TARGET_AVX512PF"
|
|
||||||
{
|
|
||||||
switch (INTVAL (operands[3]))
|
|
||||||
{
|
|
||||||
case 3:
|
|
||||||
case 7:
|
|
||||||
return "vscatterpf0<ssemodesuffix>pd\t{%4|%4}";
|
|
||||||
case 2:
|
|
||||||
case 6:
|
|
||||||
return "vscatterpf1<ssemodesuffix>pd\t{%4|%4}";
|
|
||||||
default:
|
|
||||||
gcc_unreachable ();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[(set_attr "type" "sse")
|
|
||||||
(set_attr "prefix" "evex")
|
|
||||||
(set_attr "mode" "XI")])
|
|
||||||
|
|
||||||
(define_insn "avx512er_exp2<mode><mask_name><round_saeonly_name>"
|
(define_insn "avx512er_exp2<mode><mask_name><round_saeonly_name>"
|
||||||
[(set (match_operand:VF_512 0 "register_operand" "=v")
|
[(set (match_operand:VF_512 0 "register_operand" "=v")
|
||||||
(unspec:VF_512
|
(unspec:VF_512
|
||||||
|
|
|
@ -1,3 +1,15 @@
|
||||||
|
2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
|
||||||
|
|
||||||
|
PR target/69228
|
||||||
|
* gcc.target/i386/avx512pf-vscatterpf0dpd-1.c: Adjust.
|
||||||
|
* gcc.target/i386/avx512pf-vscatterpf0dps-1.c: Likewise.
|
||||||
|
* gcc.target/i386/avx512pf-vscatterpf0qpd-1.c: Likewise.
|
||||||
|
* gcc.target/i386/avx512pf-vscatterpf0qps-1.c: Likewise.
|
||||||
|
* gcc.target/i386/avx512pf-vscatterpf1dpd-1.c: Likewise.
|
||||||
|
* gcc.target/i386/avx512pf-vscatterpf1dps-1.c: Likewise.
|
||||||
|
* gcc.target/i386/avx512pf-vscatterpf1qpd-1.c: Likewise.
|
||||||
|
* gcc.target/i386/avx512pf-vscatterpf1qps-1.c: Likewise.
|
||||||
|
|
||||||
2016-01-13 Jakub Jelinek <jakub@redhat.com>
|
2016-01-13 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
PR target/69247
|
PR target/69247
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
/* { dg-do compile } */
|
/* { dg-do compile } */
|
||||||
/* { dg-options "-mavx512pf -O2" } */
|
/* { dg-options "-mavx512pf -O2" } */
|
||||||
/* { dg-final { scan-assembler-times "vscatterpf0dpd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*\\)(?:\n|\[ \\t\]+#)" 1 } } */
|
/* { dg-final { scan-assembler-times "vscatterpf0dpd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
|
||||||
/* { dg-final { scan-assembler-times "vscatterpf0dpd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
|
|
||||||
#include <immintrin.h>
|
#include <immintrin.h>
|
||||||
|
|
||||||
volatile __m256i idx;
|
volatile __m256i idx;
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
/* { dg-do compile } */
|
/* { dg-do compile } */
|
||||||
/* { dg-options "-mavx512pf -O2" } */
|
/* { dg-options "-mavx512pf -O2" } */
|
||||||
/* { dg-final { scan-assembler-times "vscatterpf0dps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)(?:\n|\[ \\t\]+#)" 1 } } */
|
/* { dg-final { scan-assembler-times "vscatterpf0dps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
|
||||||
/* { dg-final { scan-assembler-times "vscatterpf0dps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
|
|
||||||
|
|
||||||
#include <immintrin.h>
|
#include <immintrin.h>
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
/* { dg-do compile } */
|
/* { dg-do compile } */
|
||||||
/* { dg-options "-mavx512pf -O2" } */
|
/* { dg-options "-mavx512pf -O2" } */
|
||||||
/* { dg-final { scan-assembler-times "vscatterpf0qpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)(?:\n|\[ \\t\]+#)" 1 } } */
|
/* { dg-final { scan-assembler-times "vscatterpf0qpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
|
||||||
/* { dg-final { scan-assembler-times "vscatterpf0qpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
|
|
||||||
|
|
||||||
#include <immintrin.h>
|
#include <immintrin.h>
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
/* { dg-do compile } */
|
/* { dg-do compile } */
|
||||||
/* { dg-options "-mavx512pf -O2" } */
|
/* { dg-options "-mavx512pf -O2" } */
|
||||||
/* { dg-final { scan-assembler-times "vscatterpf0qps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)(?:\n|\[ \\t\]+#)" 1 } } */
|
/* { dg-final { scan-assembler-times "vscatterpf0qps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
|
||||||
/* { dg-final { scan-assembler-times "vscatterpf0qps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
|
|
||||||
|
|
||||||
#include <immintrin.h>
|
#include <immintrin.h>
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
/* { dg-do compile } */
|
/* { dg-do compile } */
|
||||||
/* { dg-options "-mavx512pf -O2" } */
|
/* { dg-options "-mavx512pf -O2" } */
|
||||||
/* { dg-final { scan-assembler-times "vscatterpf1dpd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*\\)(?:\n|\[ \\t\]+#)" 1 } } */
|
/* { dg-final { scan-assembler-times "vscatterpf1dpd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
|
||||||
/* { dg-final { scan-assembler-times "vscatterpf1dpd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
|
|
||||||
|
|
||||||
#include <immintrin.h>
|
#include <immintrin.h>
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
/* { dg-do compile } */
|
/* { dg-do compile } */
|
||||||
/* { dg-options "-mavx512pf -O2" } */
|
/* { dg-options "-mavx512pf -O2" } */
|
||||||
/* { dg-final { scan-assembler-times "vscatterpf1dps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)(?:\n|\[ \\t\]+#)" 1 } } */
|
/* { dg-final { scan-assembler-times "vscatterpf1dps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
|
||||||
/* { dg-final { scan-assembler-times "vscatterpf1dps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
|
|
||||||
|
|
||||||
#include <immintrin.h>
|
#include <immintrin.h>
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
/* { dg-do compile } */
|
/* { dg-do compile } */
|
||||||
/* { dg-options "-mavx512pf -O2" } */
|
/* { dg-options "-mavx512pf -O2" } */
|
||||||
/* { dg-final { scan-assembler-times "vscatterpf1qpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)(?:\n|\[ \\t\]+#)" 1 } } */
|
/* { dg-final { scan-assembler-times "vscatterpf1qpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
|
||||||
/* { dg-final { scan-assembler-times "vscatterpf1qpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
|
|
||||||
|
|
||||||
#include <immintrin.h>
|
#include <immintrin.h>
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
/* { dg-do compile } */
|
/* { dg-do compile } */
|
||||||
/* { dg-options "-mavx512pf -O2" } */
|
/* { dg-options "-mavx512pf -O2" } */
|
||||||
/* { dg-final { scan-assembler-times "vscatterpf1qps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)(?:\n|\[ \\t\]+#)" 1 } } */
|
/* { dg-final { scan-assembler-times "vscatterpf1qps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
|
||||||
/* { dg-final { scan-assembler-times "vscatterpf1qps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
|
|
||||||
|
|
||||||
#include <immintrin.h>
|
#include <immintrin.h>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue