]> git.ipfire.org Git - thirdparty/gcc.git/commit
i386: Add ISA check for newly introduced prefetch builtins.
authorHaochen Jiang <haochen.jiang@intel.com>
Wed, 9 Nov 2022 06:02:31 +0000 (14:02 +0800)
committerHaochen Jiang <haochen.jiang@intel.com>
Fri, 11 Nov 2022 01:57:01 +0000 (09:57 +0800)
commit21de01f5554fa037f59b27525d2eb7342f5649c7
tree8d9b9b10a02d00464ac34e529daaed7c2789df81
parentf225b813e4d1d337164b72361f23306c1b28d550
i386: Add ISA check for newly introduced prefetch builtins.

Hi all,

As Hongtao said, the fail on pentiumpro is caused by missing ISA check
since we are using emit_insn () through new builtins and it won't check
if the TARGET matches. Previously, the builtin in middle-end will check
that.

On pentiumpro, we won't have anything that supports any prefetch so that
it dropped into the pattern and then failed.

I have added the restrictions just like what middle-end builtin_prefetch
does. Also I added missing checks for PREFETCHI. Ok for trunk?

BRs,
Haochen

gcc/ChangeLog:

* config/i386/i386-builtin.def (BDESC): Add
OPTION_MASK_ISA2_PREFETCHI for prefetchi builtin.
* config/i386/i386-expand.cc (ix86_expand_builtin):
Add ISA check before emit_insn.
* config/i386/prfchiintrin.h: Add target for intrin.

gcc/testsuite/ChangeLog:

* gcc.target/i386/prefetchi-5.c: New test.
gcc/config/i386/i386-builtin.def
gcc/config/i386/i386-expand.cc
gcc/config/i386/prfchiintrin.h
gcc/testsuite/gcc.target/i386/prefetchi-5.c [new file with mode: 0644]