https://gcc.gnu.org/bugzilla/show_bug.cgi?id=128283
--- Comment #2 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Uros Bizjak <[email protected]>: https://gcc.gnu.org/g:79cd72f94d73ccc5095a9291c10a32b9965d0f77 commit r17-5827-g79cd72f94d73ccc5095a9291c10a32b9965d0f77 Author: Uros Bizjak <[email protected]> Date: Mon Nov 2 22:05:48 2026 +0100 i386: Add "memory" clobber to SGX and PCONFIG intrinsics [PR128283] The ENCLS, ENCLU, ENCLV and PCONFIG inline asm wrappers pass pointers to buffers in general registers, but do not declare that the instructions access memory. As a result, DSE can remove stores that initialize the input structures and FRE can fold loads from the output buffers. Add "memory" to the clobber list of all of them. Also add the missing "cc" clobber to __encls_edbgrd, since EDBGRD modifies the status flags, and remove the superfluous "\n\t" from the end of the asm templates. PR target/128283 gcc/ChangeLog: * config/i386/sgxintrin.h (__encls_bc, __encls_bcd, __encls_c) (__encls_edbgrd, __encls_generic, __enclu_bc, __enclu_bcd) (__enclu_eenter, __enclu_eexit, __enclu_generic, __enclv_bc) (__enclv_cd, __enclv_generic): Add "memory" clobber. Remove "\n\t" from asm template. (__encls_edbgrd): Also add "cc" clobber. * config/i386/pconfigintrin.h (__pconfig_b, __pconfig_generic): Add "memory" clobber. Remove "\n\t" from asm template. gcc/testsuite/ChangeLog: * gcc.target/i386/pr128283-1.c: New test. * gcc.target/i386/pr128283-2.c: Ditto.
