[llvm-bugs] [Bug 27756] New: Instcombine failure introduced by r269426

via llvm-bugs llvm-bugs at lists.llvm.org
Mon May 16 07:42:11 PDT 2016


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

            Bug ID: 27756
           Summary: Instcombine failure introduced by r269426
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Scalar Optimizations
          Assignee: unassignedbugs at nondot.org
          Reporter: james.molloy at arm.com
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

The following testcase causes an assertion failure when run with opt
-instcombine. This is a regression introduced in r269426:

[InstCombine] canonicalize* LE/GE vector integer comparisons to LT/GT (PR26701,
PR26819)

*We don't currently handle the edge case constants (min/max values), so it's
not a complete
canonicalization.

To fully solve the motivating bugs, we need to enhance this to recognize a zero
vector
too because that's a ConstantAggregateZero which is a ConstantData, not a
ConstantVector
or a ConstantDataVector.

Differential Revision: http://reviews.llvm.org/D17859


; ModuleID = 'bugpoint-reduced-simplified.bc'
source_filename = "bugpoint-output-f90b06d.bc"
target datalayout = "e-m:e-i64:64-i128:128-n32:64-S128"
target triple = "aarch64--linux-gnu"

; Function Attrs: nounwind readnone
declare <16 x i8> @llvm.aarch64.neon.srshl.v16i8(<16 x i8>, <16 x i8>) #0

; Function Attrs: nounwind
define fastcc void @dotests_268() unnamed_addr #1 {
entry:
  %vrshr_n = call <16 x i8> @llvm.aarch64.neon.srshl.v16i8(<16 x i8> undef, <16
x i8> <i8 -6, i8 -6, i8 -6, i8 -6, i8 -6, i8 -6, i8 -6, i8 -6, i8 -6, i8 -6, i8
-6, i8 -6, i8 -6, i8 -6, i8 -6, i8 -6>)
  %0 = add <16 x i8> zeroinitializer, %vrshr_n
  %vset_lane = shufflevector <8 x i16> <i16 -20871, i16 -1, i16 32767, i16 -1,
i16 32639, i16 -22537, i16 -1, i16 -4866>, <8 x i16> undef, <8 x i32> <i32 0,
i32 1, i32 2, i32 3, i32 4, i32 5, i32 13, i32 7>
  %1 = bitcast <8 x i16> %vset_lane to <16 x i8>
  %shuffle336 = shufflevector <16 x i8> %1, <16 x i8> undef, <16 x i32> <i32
15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32
15, i32 15, i32 15, i32 15, i32 15, i32 15>
  %cmp.i = icmp sle <16 x i8> %0, %shuffle336
  %sext.i = sext <16 x i1> %cmp.i to <16 x i8>
  %and.i = and <16 x i8> %sext.i, <i8 113, i8 45, i8 0, i8 -128, i8 -1, i8 -1,
i8 -1, i8 127, i8 55, i8 92, i8 -1, i8 -1, i8 -1, i8 -1, i8 0, i8 0>
  ret void
}

attributes #0 = { nounwind readnone }
attributes #1 = { nounwind "disable-tail-calls"="false"
"less-precise-fpmad"="false" "no-frame-pointer-elim"="true"
"no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false"
"no-jump-tables"="false" "no-nans-fp-math"="false"
"stack-protector-buffer-size"="8" "target-cpu"="cortex-a57"
"target-features"="+crc,+crypto,+neon" "unsafe-fp-math"="false"
"use-soft-float"="false" }

!llvm.ident = !{!0}

!0 = !{!"clang version 3.9.0 (trunk 269502) (llvm/trunk 269506)"}

-- 
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/20160516/b8940eb2/attachment.html>


More information about the llvm-bugs mailing list