[llvm-bugs] [Bug 24458] New: Instruction's optimization works wrong with vector code.
via llvm-bugs
llvm-bugs at lists.llvm.org
Fri Aug 14 05:40:50 PDT 2015
https://llvm.org/bugs/show_bug.cgi?id=24458
Bug ID: 24458
Summary: Instruction's optimization works wrong with vector
code.
Product: tools
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P
Component: opt
Assignee: unassignedbugs at nondot.org
Reporter: shishpanov2010 at yandex.ru
CC: llvm-bugs at lists.llvm.org
Classification: Unclassified
IR code with fail:
define <8 x i32> @_div__(<8 x float> %n) {
%notequal_b_load_.i = fcmp une <8 x float> %n, zeroinitializer
%equal_a_load72_.i = fcmp ueq <8 x float> %n, zeroinitializer
%notequal_b_load__to_boolvec.i = sext <8 x i1> %notequal_b_load_.i to <8 x
i32>
%equal_a_load72__to_boolvec.i = sext <8 x i1> %equal_a_load72_.i to <8 x i32>
%wrong = or <8 x i32> %notequal_b_load__to_boolvec.i,
%equal_a_load72__to_boolvec.i
ret <8 x i32> %wrong
}
Launch command: opt -instcombine -o /dev/null reduce.ll
I think the mistake is in lib/Transforms/InstCombine/InstCombineAndOrXor.cpp in
Value *getFCmpValue(bool isordered, unsigned code, Value *LHS, Value
*RHS, InstCombiner::BuilderTy *Builder). This function does not consider the
vector value. It returns i1 true, but I guess it should return vector of i1
true.
--
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/20150814/48588f8b/attachment.html>
More information about the llvm-bugs
mailing list