Without FMF, we lower these intrinsics into something like this:
vmaxsd %xmm0, %xmm1, %xmm2 vcmpunordsd %xmm0, %xmm0, %xmm0 vblendvpd %xmm0, %xmm1, %xmm2, %xmm0
But if we can ignore NANs, the single min/max instruction is enough because there is no need to fix up the x86 logic that corresponds to something like X>Y ? X : Y.
We probably want to make other adjustments for FP intrinsics with FMF to account for specialized codegen (for example, FSQRT).
I think you can use --check-prefixes=AVX,AVX1 to reduce some duplicated checks. The same to fminnum.ll