[llvm-bugs] [Bug 40872] New: [AMDGPU][MC] Different conversion rules for integer literals and expressions

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Feb 26 10:44:46 PST 2019


https://bugs.llvm.org/show_bug.cgi?id=40872

            Bug ID: 40872
           Summary: [AMDGPU][MC] Different conversion rules for integer
                    literals and expressions
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Backend: AMDGPU
          Assignee: unassignedbugs at nondot.org
          Reporter: dpreobrazhensky at luxoft.com
                CC: llvm-bugs at lists.llvm.org

Currently assembler has different conversion rules for integer literals and
expressions which may confuse users.

Compare the rules:
https://llvm.org/docs/AMDGPUOperandSyntax.html#integer-literals
https://llvm.org/docs/AMDGPUOperandSyntax.html#amdgpu-synid-exp-conv

For integer literals, assembler checks that the truncated bits are either all
zero or all ones. In the latter case the MSB of the result after truncation
must be 1. For example, the following code will trigger an error:

    v_add_f32 v0, 0x101ffffff00, v0 // error

In contrast, expressions are truncated to the expected operand size. No checks
are performed:

    x = 0x101ffffff00
    v_add_f32 v0, x, v0 // assembled ok

I believe conversion rules for integer literals and expressions should be as
close as possible.

There is a similar but different issue (bug 40806 "Different conversion rules
for literals and inlinable constants").

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20190226/9fdc0f96/attachment.html>


More information about the llvm-bugs mailing list