aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-im.c
diff options
context:
space:
mode:
authorHongyu Wang <hongyu.wang@intel.com>2021-06-30 14:38:31 +0800
committerliuhongt <hongtao.liu@intel.com>2021-07-02 14:32:56 +0800
commit1aeefa5720a71e622e2f26bf10ec8e7ecbd76f4c (patch)
treed1cca20e8b8850c9747f5fc4eb15b123239744d0 /gcc/tree-ssa-loop-im.c
parent01d402c5e0ac1ddf5618bbe316b50067625fda46 (diff)
downloadgcc-1aeefa5720a71e622e2f26bf10ec8e7ecbd76f4c.zip
gcc-1aeefa5720a71e622e2f26bf10ec8e7ecbd76f4c.tar.gz
gcc-1aeefa5720a71e622e2f26bf10ec8e7ecbd76f4c.tar.bz2
Clear odata for aes(enc|dec)(wide)?kl intrinsics when ZF is set.
For Keylocker aesenc/aesdec intrinsics, current implementation moves idata to odata unconditionally, which causes safety issue when the instruction meets runtime error. So we add a branch to clear odata when ZF is set after instruction exectution. gcc/ChangeLog: * config/i386/i386-expand.c (ix86_expand_builtin): Add branch to clear odata when ZF is set for asedecenc_expand and wideaesdecenc_expand. gcc/testsuite/ChangeLog: * gcc.target/i386/keylocker-aesdec128kl.c: Update test. * gcc.target/i386/keylocker-aesdec256kl.c: Likewise. * gcc.target/i386/keylocker-aesdecwide128kl.c: Likewise. * gcc.target/i386/keylocker-aesdecwide256kl.c: Likewise. * gcc.target/i386/keylocker-aesenc128kl.c: Likewise. * gcc.target/i386/keylocker-aesenc256kl.c: Likewise. * gcc.target/i386/keylocker-aesencwide128kl.c: Likewise. * gcc.target/i386/keylocker-aesencwide256kl.c: Likewise.
Diffstat (limited to 'gcc/tree-ssa-loop-im.c')
0 files changed, 0 insertions, 0 deletions