This is an archive of the discontinued LLVM Phabricator instance.

[AVX-512] Allow legacy scalar min/max intrinsics to select EVEX instructions when available
ClosedPublic

Authored by craig.topper on Feb 20 2017, 10:36 PM.

Details

Summary

This patch introduces new X86ISD::FMAXS and X86ISD::FMINS opcodes. The legacy intrinsics now lower to this node. As do the AVX-512 masked intrinsics when the rounding mode is CUR_DIRECTION.

I've merged a copy of the tablegen multiclass avx512_fp_scalar into avx512_fp_scalar_sae. avx512_fp_scalar still needs to support CUR_DIRECTION appearing as a rounding mode for X86ISD::FADD_ROUND and others.

Diff Detail

Repository
rL LLVM

Event Timeline

craig.topper created this revision.Feb 20 2017, 10:36 PM
delena accepted this revision.Feb 21 2017, 1:57 AM
This revision is now accepted and ready to land.Feb 21 2017, 1:57 AM
zvi added inline comments.Feb 21 2017, 3:26 AM
lib/Target/X86/X86ISelLowering.cpp
18989 ↗(On Diff #89165)

Are there tests that cover this case?

craig.topper added inline comments.Feb 21 2017, 10:49 PM
lib/Target/X86/X86ISelLowering.cpp
18989 ↗(On Diff #89165)

Yes there are.

This revision was automatically updated to reflect the committed changes.