[LLVMbugs] [Bug 7500] New: x86-64 missed optimization: pcmpeqd not commuted
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Fri Jun 25 13:30:15 PDT 2010
http://llvm.org/bugs/show_bug.cgi?id=7500
Summary: x86-64 missed optimization: pcmpeqd not commuted
Product: new-bugs
Version: unspecified
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P
Component: new bugs
AssignedTo: unassignedbugs at nondot.org
ReportedBy: sharparrow1 at yahoo.com
CC: llvmbugs at cs.uiuc.edu
Testcase:
target datalayout =
"e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
target triple = "x86_64-unknown-linux-gnu"
define <2 x double> @a(<2 x double>, <2 x double>) nounwind readnone {
entry:
%tmp6 = bitcast <2 x double> %0 to <4 x i32> ; <<4 x i32>> [#uses=2]
%tmp4 = bitcast <2 x double> %1 to <4 x i32> ; <<4 x i32>> [#uses=1]
%cmp = icmp eq <4 x i32> %tmp6, %tmp4 ; <<4 x i1>> [#uses=1]
%sext = sext <4 x i1> %cmp to <4 x i32> ; <<4 x i32>> [#uses=1]
%and = and <4 x i32> %tmp6, %sext ; <<4 x i32>> [#uses=1]
%tmp8 = bitcast <4 x i32> %and to <2 x double> ; <<2 x double>> [#uses=1]
ret <2 x double> %tmp8
}
Output (relevant part):
movdqa %xmm0, %xmm2
pcmpeqd %xmm1, %xmm2
pand %xmm2, %xmm0
ret
Expected output:
pcmpeqd %xmm0, %xmm1
pand %xmm1, %xmm0
ret
Filing instead of putting into README because I'm not sure why this
optimization isn't happening.
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list