https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123489
--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jakub Jelinek <[email protected]>: https://gcc.gnu.org/g:671382d0ac71ae808a10f3cee1bb521a32b9406b commit r16-6642-g671382d0ac71ae808a10f3cee1bb521a32b9406b Author: Jakub Jelinek <[email protected]> Date: Fri Jan 9 12:19:26 2026 +0100 i386: Add OPTION_MASK_ISA_64BIT to 4 non-ia32 builtins [PR123489] The following 4 builtins have corresponding insns guarded with TARGET_64BIT and are only used in #ifdef __x86_64__ ... #endif section of an intrin header, so when used by hand with -m32 they ICE. Fixed thusly. I've additionally verified all the #ifdef __x86_64__ ... #endif guarded builtins used in intrinsic headers and checked whether they have OPTION_MASK_ISA_64BIT, the only other exception was __builtin_ia32_prefetchi but I think that one is fine, as expansion in that case has if (TARGET_64BIT && TARGET_PREFETCHI && local_func_symbolic_operand (op0, GET_MODE (op0))) emit_insn (gen_prefetchi (op0, op2)); else { warning (0, "instruction prefetch applies when in 64-bit mode" " with RIP-relative addressing and" " option %<-mprefetchi%>;" " they stay NOPs otherwise"); emit_insn (gen_nop ()); } 2026-01-09 Jakub Jelinek <[email protected]> PR target/123489 * config/i386/i386-builtin.def (__builtin_ia32_cvttsd2sis64_round, __builtin_ia32_cvttsd2usis64_round, __builtin_ia32_cvttss2sis64_round, __builtin_ia32_cvttss2usis64_round): Require OPTION_MASK_ISA_64BIT. * gcc.target/i386/pr123489.c: New test.
