mirror of git://gcc.gnu.org/git/gcc.git
backport: re PR target/69228 (Default mask is not allowed for AVX512 prefetch gather/scatter insns)
Backport from mainline 2016-01-13 Alexander Fomin <alexander.fomin@intel.com> 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: r232412
This commit is contained in:
parent
c57ac69f3a
commit
83d875c4b4
|
|
@ -1,3 +1,22 @@
|
||||||
|
2016-01-15 Alexander Fomin <alexander.fomin@intel.com>
|
||||||
|
|
||||||
|
Backport from mainline
|
||||||
|
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
|
||||||
|
|
|
||||||
|
|
@ -40259,13 +40259,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);
|
||||||
|
|
|
||||||
|
|
@ -15210,7 +15210,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")
|
||||||
|
|
@ -15252,37 +15252,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")
|
||||||
|
|
@ -15324,37 +15297,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")
|
||||||
|
|
@ -15398,39 +15344,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")
|
||||||
|
|
@ -15474,35 +15391,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,18 @@
|
||||||
|
2016-01-15 Alexander Fomin <alexander.fomin@intel.com>
|
||||||
|
|
||||||
|
Backport from mainline
|
||||||
|
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-12 James Greenhalgh <james.greenhalgh@arm.com>
|
2016-01-12 James Greenhalgh <james.greenhalgh@arm.com>
|
||||||
|
|
||||||
Backport from mainline r222186.
|
Backport from mainline r222186.
|
||||||
|
|
|
||||||
|
|
@ -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