http://llvm.org/bugs/show_bug.cgi?id=21575

            Bug ID: 21575
           Summary: Order of code generated for fastisel is wrong from X86
                    .td files dealing with VBROADCASTSSZr
           Product: new-bugs
           Version: unspecified
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]
    Classification: Unclassified

There is an issue in the X86 .td files dealing with VBROADCASTSSZr where the
ordering of the output for code generated for fastisel is wrong.

In X86GenFastISel.inc:

unsigned fastEmit_X86ISD_VBROADCAST_MVT_v4f32_MVT_v16f32_r(unsigned Op0, bool
Op0IsKill) {
  return fastEmitInst_r(X86::VBROADCASTSSZr, &X86::VR512RegClass, Op0,
Op0IsKill);
  if ((Subtarget->hasAVX512())) {
    return fastEmitInst_r(X86::VBROADCASTSSZr, &X86::VR512RegClass, Op0,
Op0IsKill);
  }
}

The "bare" return makes the if statement into dead code.

Note that how these are ordered is going to change to be based on the
complexity.  But even with that change the above still occurs so the
complexities of those instructions appears to be wrong as well.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to