------- Comment #3 from rguenth at gcc dot gnu dot org 2010-05-31 10:46 ------- (In reply to comment #2) > The problem is that all the fma4 insns are guarded with not just TARGET_FMA4, > but TARGET_FMA4 && TARGET_FUSED_MADD. But the builtins are guarded just with > OPTION_MASK_ISA_FMA4. > > So, for -mno-fused-madd either we should ensure fma4intrin.h is not included > (or, at least not its fma intrinsics (currently all intrinsics in the header > file)) and the builtins expand to nothing, or for -mfma4 -mno-fused-madd > expand > the intrinsics as non-fused insns (multiplication followed by addition or > similar).
Well, TARGET_FMA4 should be enough to pull in the intrinsics and let the user manually create fmas. TARGET_FUSED_MADD should guard automatic creation of fmas during combine (and thus needs to disable the insn to avoid creating it). I guess for the intrinsic use we need a UNSPEC expander then? -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu dot | |org, hubicka at gcc dot gnu | |dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44338