HomePhabricator

[X86] Add custom widening for v2f64->v2i32 strict_fp_to_uint with avx512f, but…

Authored by craig.topper on Dec 26 2019, 12:26 PM.

Description

[X86] Add custom widening for v2f64->v2i32 strict_fp_to_uint with avx512f, but not avx512vl.

AVX512F added instruction for vector fp_to_uint conversions. With
AVX512VL we can use a specific instruction that does v2f64->v4i32 with
zeroes in the 2 extra elements. For non-strict nodes without AVX512VL
we relied on type legalization to turn it to v4f64->v4i32 which would
later be widened by op legalization to v8f64->v8i32. But type legalization
doesn't currently widen strict nodes since it doesn't know how to
safely and efficiently pad the extra elements. But for X86 we know
padding with zeroes is safe and efficient so do that ourselves.

Details

Committed
craig.topperDec 26 2019, 12:42 PM
Parents
rG522ee29a4fb3: Allow newlines in AST Matchers in clang-query files
Branches
Unknown
Tags
Unknown