This allows the SSE intrinsic to use the EVEX instruction when available. It also fixes EVEX to not use a weird (v4i32 (fp_to_sint v2f64)) node and it merges some isel patterns.
Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
Any chance that you could add support for upper-64 bits zeroing to remove the (v)movq instructions in the test_mm_cvttpd_epi32_zext tests please?
Comment Actions
Turns out those movqs were caused by the vzmovl patterns being rooted with a bitcast that didn't exist for the return values being 2xi64. To fix that remove the bitcasts, but then we hit priority problems with vzmovl patterns due to lots of AddedComplexity nodes on other patterns starting with vzmovl including the most vanilla vzmovl pattern. So threw in another AddedComplexity on these patterns to fix that. I'll try to scrub the vzmovl pattern mess sometime and see if we can't get these AddedComplexity's out.
I also added in a vzmovl cvtpd2ps pattern I noticed was missing