[llvm-bugs] [Bug 45995] New: X86 bugs in extract value and select

via llvm-bugs llvm-bugs at lists.llvm.org
Tue May 19 12:48:11 PDT 2020


            Bug ID: 45995
           Summary: X86 bugs in extract value and select
           Product: new-bugs
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: ajcbik at google.com
                CC: htmldeveloper at gmail.com, llvm-bugs at lists.llvm.org

The method combineExtractVectorElt() in lib/Target/X86/X86ISelLowering.cpp
incorrectly combines the extract_vector_elt instructions that operate on
different results. For example, it is fine to combine

 t0 = merge_values a0, a1, a2, a3
 i1 = extract_vector_elt t0, Constant:i64<2>
 i1 = extract_vector_elt t0, Constant:i64<3>

but not

 i1 = extract_vector_elt t0:1, Constant:i64<2>

(note the :1), since it operates on a different result. As a result, a single
MOVMSK is shared, when there should be several.

While debugging the issue, I also found a but in combineSelect() in the same
file. The part that tries to deal with bitcasts did not properly test for an
actual machine value type.

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/20200519/24082151/attachment.html>

More information about the llvm-bugs mailing list