[llvm] Add Instruction selection support for x87 ld/st (PR #97016)

Evgenii Kudriashov via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 28 05:10:02 PDT 2024


e-kud wrote:

> There is no higher priority feature than x87 load and stores?

One of the criteria we use is plum C/C++ validation test suite. There is a bunch of tests for `long double` that used to be implemented through x87. Since there was almost none support for x87, we spend time to bring it up. Also this PR fixes `G_LOAD`/`G_STORE` for `s80` that may be legalized but not selected. Before any `x87` support, it simply crashed, because no register bank were available for `s80`. In other words, it can be interpreted as a story of fixing one crash in three moves: reg banks, differentiating float/integer types, lowering the address.

I agree that this may be not a high priority, but this is some unknown area. It revealed the lack of float/integer differentiating, and the complexities we have when try to match addresses through SelectionDAG patterns. 

https://github.com/llvm/llvm-project/pull/97016


More information about the llvm-commits mailing list