[llvm-dev] New atomic handling status

Eli Friedman via llvm-dev llvm-dev at lists.llvm.org
Mon Feb 24 12:27:03 PST 2020


We can always lower “bitcast float %f to i32” using a stack temporary.  This lowering is used on multiple targets, including x86 without SSE.

-Eli

From: llvm-dev <llvm-dev-bounces at lists.llvm.org> On Behalf Of Krzysztof Parzyszek via llvm-dev
Sent: Monday, February 24, 2020 11:41 AM
To: Matt Arsenault <arsenm2 at gmail.com>; Philip Reames <listmail at philipreames.com>; llvm-dev at lists.llvm.org
Subject: [EXT] Re: [llvm-dev] New atomic handling status

PPC64 doesn’t have 32-bit floating point values in registers, they are always 64-bit.  32-bit FP loads/stores perform implicit conversions to/from 64-bit FP.  In such cases it’s not legal to do a bitcast to a 32-bit integer for the purpose of storing.


--
Krzysztof Parzyszek  kparzysz at quicinc.com<mailto:kparzysz at quicinc.com>   AI tools development

From: llvm-dev <llvm-dev-bounces at lists.llvm.org<mailto:llvm-dev-bounces at lists.llvm.org>> On Behalf Of Matt Arsenault via llvm-dev
Sent: Monday, February 24, 2020 1:30 PM
To: Philip Reames <listmail at philipreames.com<mailto:listmail at philipreames.com>>
Cc: llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>>
Subject: [EXT] Re: [llvm-dev] New atomic handling status



On Jan 22, 2020, at 19:49, Philip Reames <listmail at philipreames.com<mailto:listmail at philipreames.com>> wrote:

In short, I hit a major stumbling block.  I hadn't account for the fact that some atomic stores dependent on element type (float vs int for instance) for legality.

I think this qualifies as a target/infrastructure bug. It should always be legal to cast the FP atomic load/store to integer. This distinction isn’t possible in GlobalISel, so it makes sense to move away from this being a situation to deal with.

-Matt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200224/0404610c/attachment.html>


More information about the llvm-dev mailing list