blob: 336bf06e557d791d1399f89bbf3fa59dd368efff [file] [log] [blame]
NAKAMURA Takumiddbfbcf2011-03-16 13:52:38 +00001; RUN: llc -mtriple=x86_64-linux < %s | FileCheck %s
Dan Gohmanca5b8552010-06-25 21:05:35 +00002
3; Commute the comparison to avoid a move.
4; PR7500.
5
6; CHECK: a:
7; CHECK-NOT: mov
8; CHECK: pcmpeqd
9define <2 x double> @a(<2 x double>, <2 x double>) nounwind readnone {
10entry:
11 %tmp6 = bitcast <2 x double> %0 to <4 x i32> ; <<4 x i32>> [#uses=2]
12 %tmp4 = bitcast <2 x double> %1 to <4 x i32> ; <<4 x i32>> [#uses=1]
13 %cmp = icmp eq <4 x i32> %tmp6, %tmp4 ; <<4 x i1>> [#uses=1]
14 %sext = sext <4 x i1> %cmp to <4 x i32> ; <<4 x i32>> [#uses=1]
15 %and = and <4 x i32> %tmp6, %sext ; <<4 x i32>> [#uses=1]
16 %tmp8 = bitcast <4 x i32> %and to <2 x double> ; <<2 x double>> [#uses=1]
17 ret <2 x double> %tmp8
18}
19
20