X86: add GATHER intrinsics (AVX2) in LLVM
[oota-llvm.git] / test / CodeGen / CellSPU / i64ops.ll
1 ; RUN: llc < %s -march=cellspu > %t1.s
2 ; RUN: grep xswd             %t1.s | count 3
3 ; RUN: grep xsbh             %t1.s | count 1
4 ; RUN: grep xshw             %t1.s | count 2
5 ; RUN: grep shufb        %t1.s | count 7
6 ; RUN: grep cg           %t1.s | count 4
7 ; RUN: grep addx         %t1.s | count 4
8 ; RUN: grep fsmbi        %t1.s | count 3
9 ; RUN: grep il           %t1.s | count 2
10 ; RUN: grep mpy          %t1.s | count 10
11 ; RUN: grep mpyh         %t1.s | count 6
12 ; RUN: grep mpyhhu       %t1.s | count 2
13 ; RUN: grep mpyu         %t1.s | count 4
14
15 ; ModuleID = 'stores.bc'
16 target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
17 target triple = "spu"
18
19 define i64 @sext_i64_i8(i8 %a) nounwind {
20   %1 = sext i8 %a to i64
21   ret i64 %1
22 }
23
24 define i64 @sext_i64_i16(i16 %a) nounwind {
25   %1 = sext i16 %a to i64
26   ret i64 %1
27 }
28
29 define i64 @sext_i64_i32(i32 %a) nounwind {
30   %1 = sext i32 %a to i64
31   ret i64 %1
32 }
33
34 define i64 @zext_i64_i8(i8 %a) nounwind {
35   %1 = zext i8 %a to i64
36   ret i64 %1
37 }
38
39 define i64 @zext_i64_i16(i16 %a) nounwind {
40   %1 = zext i16 %a to i64
41   ret i64 %1
42 }
43
44 define i64 @zext_i64_i32(i32 %a) nounwind {
45   %1 = zext i32 %a to i64
46   ret i64 %1
47 }
48
49 define i64 @add_i64(i64 %a, i64 %b) nounwind {
50   %1 = add i64 %a, %b
51   ret i64 %1
52 }
53
54 define i64 @mul_i64(i64 %a, i64 %b) nounwind {
55   %1 = mul i64 %a, %b
56   ret i64 %1
57 }