[llvm-dev] [GlobalISel] G_LOAD/G_STORE i64/f64 handling
Friedman, Eli via llvm-dev
llvm-dev at lists.llvm.org
Mon Jul 3 13:28:51 PDT 2017
On 7/2/2017 3:50 AM, Breger, Igor via llvm-dev wrote:
> Hi all,
> I am working on enabling X86 using GLobalIsel framework.
> I have 32bit platform + float/double configuration
> (-mtriple=i386-linux-gnu -mattr=+sse2 )
> load i64, i64* %p1 - illegal, require
> narrowScalar action
> load double, double * %p1 - legal
> What is the best approach to Legalize this case ? Should I mark
> G_LOAD/G_STORE s64 as Custom?
In the world of GlobalISel, i64 and double are both s64, so "load i64"
and "load double" are the same operation; if one is Legal, both are
Legal. This should just work, barring any bugs.
The resulting code will probably be low-quality because there isn't any
good way to lower the resulting transfers between SSE and integer
registers, but you can put off dealing with that for now.
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev