blob: 6e545b766e2a75eeb2d2545440c07a248afa255c [file] [log] [blame]
Bob Wilsone9ce5d52009-08-07 23:45:02 +00001; RUN: llvm-as < %s | llc -march=arm -mattr=+neon | FileCheck %s
Bob Wilson5bafff32009-06-22 23:27:02 +00002
3define <8 x i8> @vceqi8(<8 x i8>* %A, <8 x i8>* %B) nounwind {
Bob Wilsone9ce5d52009-08-07 23:45:02 +00004;CHECK: vceqi8:
5;CHECK: vceq.i8
Bob Wilson5bafff32009-06-22 23:27:02 +00006 %tmp1 = load <8 x i8>* %A
7 %tmp2 = load <8 x i8>* %B
Chris Lattnerb2773e12009-07-08 00:46:57 +00008 %tmp3 = icmp eq <8 x i8> %tmp1, %tmp2
9 %tmp4 = sext <8 x i1> %tmp3 to <8 x i8>
10 ret <8 x i8> %tmp4
Bob Wilson5bafff32009-06-22 23:27:02 +000011}
12
13define <4 x i16> @vceqi16(<4 x i16>* %A, <4 x i16>* %B) nounwind {
Bob Wilsone9ce5d52009-08-07 23:45:02 +000014;CHECK: vceqi16:
15;CHECK: vceq.i16
Bob Wilson5bafff32009-06-22 23:27:02 +000016 %tmp1 = load <4 x i16>* %A
17 %tmp2 = load <4 x i16>* %B
Chris Lattnerb2773e12009-07-08 00:46:57 +000018 %tmp3 = icmp eq <4 x i16> %tmp1, %tmp2
19 %tmp4 = sext <4 x i1> %tmp3 to <4 x i16>
20 ret <4 x i16> %tmp4
Bob Wilson5bafff32009-06-22 23:27:02 +000021}
22
23define <2 x i32> @vceqi32(<2 x i32>* %A, <2 x i32>* %B) nounwind {
Bob Wilsone9ce5d52009-08-07 23:45:02 +000024;CHECK: vceqi32:
25;CHECK: vceq.i32
Bob Wilson5bafff32009-06-22 23:27:02 +000026 %tmp1 = load <2 x i32>* %A
27 %tmp2 = load <2 x i32>* %B
Chris Lattnerb2773e12009-07-08 00:46:57 +000028 %tmp3 = icmp eq <2 x i32> %tmp1, %tmp2
29 %tmp4 = sext <2 x i1> %tmp3 to <2 x i32>
30 ret <2 x i32> %tmp4
Bob Wilson5bafff32009-06-22 23:27:02 +000031}
32
33define <2 x i32> @vceqf32(<2 x float>* %A, <2 x float>* %B) nounwind {
Bob Wilsone9ce5d52009-08-07 23:45:02 +000034;CHECK: vceqf32:
35;CHECK: vceq.f32
Bob Wilson5bafff32009-06-22 23:27:02 +000036 %tmp1 = load <2 x float>* %A
37 %tmp2 = load <2 x float>* %B
Chris Lattnerb2773e12009-07-08 00:46:57 +000038 %tmp3 = fcmp oeq <2 x float> %tmp1, %tmp2
39 %tmp4 = sext <2 x i1> %tmp3 to <2 x i32>
40 ret <2 x i32> %tmp4
Bob Wilson5bafff32009-06-22 23:27:02 +000041}
42
43define <16 x i8> @vceqQi8(<16 x i8>* %A, <16 x i8>* %B) nounwind {
Bob Wilsone9ce5d52009-08-07 23:45:02 +000044;CHECK: vceqQi8:
45;CHECK: vceq.i8
Bob Wilson5bafff32009-06-22 23:27:02 +000046 %tmp1 = load <16 x i8>* %A
47 %tmp2 = load <16 x i8>* %B
Chris Lattnerb2773e12009-07-08 00:46:57 +000048 %tmp3 = icmp eq <16 x i8> %tmp1, %tmp2
49 %tmp4 = sext <16 x i1> %tmp3 to <16 x i8>
50 ret <16 x i8> %tmp4
Bob Wilson5bafff32009-06-22 23:27:02 +000051}
52
53define <8 x i16> @vceqQi16(<8 x i16>* %A, <8 x i16>* %B) nounwind {
Bob Wilsone9ce5d52009-08-07 23:45:02 +000054;CHECK: vceqQi16:
55;CHECK: vceq.i16
Bob Wilson5bafff32009-06-22 23:27:02 +000056 %tmp1 = load <8 x i16>* %A
57 %tmp2 = load <8 x i16>* %B
Chris Lattnerb2773e12009-07-08 00:46:57 +000058 %tmp3 = icmp eq <8 x i16> %tmp1, %tmp2
59 %tmp4 = sext <8 x i1> %tmp3 to <8 x i16>
60 ret <8 x i16> %tmp4
Bob Wilson5bafff32009-06-22 23:27:02 +000061}
62
63define <4 x i32> @vceqQi32(<4 x i32>* %A, <4 x i32>* %B) nounwind {
Bob Wilsone9ce5d52009-08-07 23:45:02 +000064;CHECK: vceqQi32:
65;CHECK: vceq.i32
Bob Wilson5bafff32009-06-22 23:27:02 +000066 %tmp1 = load <4 x i32>* %A
67 %tmp2 = load <4 x i32>* %B
Chris Lattnerb2773e12009-07-08 00:46:57 +000068 %tmp3 = icmp eq <4 x i32> %tmp1, %tmp2
69 %tmp4 = sext <4 x i1> %tmp3 to <4 x i32>
70 ret <4 x i32> %tmp4
Bob Wilson5bafff32009-06-22 23:27:02 +000071}
72
73define <4 x i32> @vceqQf32(<4 x float>* %A, <4 x float>* %B) nounwind {
Bob Wilsone9ce5d52009-08-07 23:45:02 +000074;CHECK: vceqQf32:
75;CHECK: vceq.f32
Bob Wilson5bafff32009-06-22 23:27:02 +000076 %tmp1 = load <4 x float>* %A
77 %tmp2 = load <4 x float>* %B
Chris Lattnerb2773e12009-07-08 00:46:57 +000078 %tmp3 = fcmp oeq <4 x float> %tmp1, %tmp2
79 %tmp4 = sext <4 x i1> %tmp3 to <4 x i32>
80 ret <4 x i32> %tmp4
Bob Wilson5bafff32009-06-22 23:27:02 +000081}