HomePhabricator

[FPEnv][ARM] Add lowering of STRICT_FSETCC and STRICT_FSETCCS

Authored by john.brawn on Jan 22 2020, 6:04 AM.

Description

[FPEnv][ARM] Add lowering of STRICT_FSETCC and STRICT_FSETCCS

These can be lowered to code sequences using CMPFP and CMPFPE which then get
selected to VCMP and VCMPE. The implementation isn't fully correct, as the chain
operand isn't handled correctly, but resolving that looks like it would involve
changes around FPSCR-handling instructions and how the FPSCR is modelled.

The fp-intrinsics test was already testing some of this but as the entire test
was being XFAILed it wasn't noticed. Un-XFAIL the test and instead leave the
cases where we aren't generating the right instruction sequences as FIXME.

Differential Revision: https://reviews.llvm.org/D73194

(cherry picked from commit b37d59353f699e99f139a9227a6a69964ef4b132)