xref: /llvm-project/llvm/test/ExecutionEngine/Interpreter/test-interp-vec-shuffle.ll (revision e80d934aa6c1a0adc18a1d7327eec5623fa68357)
1*e80d934aSAlex Bradbury; RUN: %lli -jit-kind=mcjit -force-interpreter=true %s > /dev/null
2*e80d934aSAlex Bradbury
3*e80d934aSAlex Bradburydefine i32 @main() {
4*e80d934aSAlex Bradbury
5*e80d934aSAlex Bradbury  ; Vector values
6*e80d934aSAlex Bradbury  %a2_i8 = add <2 x i8> zeroinitializer, <i8 0, i8 1>
7*e80d934aSAlex Bradbury  %a3_i8 = add <3 x i8> zeroinitializer, <i8 0, i8 1, i8 2>
8*e80d934aSAlex Bradbury  %a4_i8 = add <4 x i8> zeroinitializer, <i8 0, i8 1, i8 2, i8 3>
9*e80d934aSAlex Bradbury  %a8_i8 = add <8 x i8> zeroinitializer, <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7>
10*e80d934aSAlex Bradbury  %a16_i8 = add <16 x i8> zeroinitializer, <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>
11*e80d934aSAlex Bradbury
12*e80d934aSAlex Bradbury  %a2_i16 = add <2 x i16> zeroinitializer, <i16 0, i16 1>
13*e80d934aSAlex Bradbury  %a3_i16 = add <3 x i16> zeroinitializer, <i16 0, i16 1, i16 2>
14*e80d934aSAlex Bradbury  %a4_i16 = add <4 x i16> zeroinitializer, <i16 0, i16 1, i16 2, i16 3>
15*e80d934aSAlex Bradbury  %a8_i16 = add <8 x i16> zeroinitializer, <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>
16*e80d934aSAlex Bradbury  %a16_i16 = add <16 x i16> zeroinitializer, <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7, i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>
17*e80d934aSAlex Bradbury
18*e80d934aSAlex Bradbury  %a2_i32 = add <2 x i32> zeroinitializer, <i32 0, i32 1>
19*e80d934aSAlex Bradbury  %a3_i32 = add <3 x i32> zeroinitializer, <i32 0, i32 1, i32 2>
20*e80d934aSAlex Bradbury  %a4_i32 = add <4 x i32> zeroinitializer, <i32 0, i32 1, i32 2, i32 3>
21*e80d934aSAlex Bradbury  %a8_i32 = add <8 x i32> zeroinitializer, <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
22*e80d934aSAlex Bradbury  %a16_i32 = add <16 x i32> zeroinitializer, <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
23*e80d934aSAlex Bradbury
24*e80d934aSAlex Bradbury  %a2_i64 = add <2 x i64> zeroinitializer, <i64 0, i64 1>
25*e80d934aSAlex Bradbury  %a3_i64 = add <3 x i64> zeroinitializer, <i64 0, i64 1, i64 2>
26*e80d934aSAlex Bradbury  %a4_i64 = add <4 x i64> zeroinitializer, <i64 0, i64 1, i64 2, i64 3>
27*e80d934aSAlex Bradbury  %a8_i64 = add <8 x i64> zeroinitializer, <i64 0, i64 1, i64 2, i64 3, i64 4, i64 5, i64 6, i64 7>
28*e80d934aSAlex Bradbury  %a16_i64 = add <16 x i64> zeroinitializer, <i64 0, i64 1, i64 2, i64 3, i64 4, i64 5, i64 6, i64 7, i64 8, i64 9, i64 10, i64 11, i64 12, i64 13, i64 14, i64 15>
29*e80d934aSAlex Bradbury
30*e80d934aSAlex Bradbury  %a2_float = fadd <2 x float> zeroinitializer, <float 0.0, float 1.0>
31*e80d934aSAlex Bradbury  %a3_float = fadd <3 x float> zeroinitializer, <float 0.0, float 1.0, float 2.0>
32*e80d934aSAlex Bradbury  %a4_float = fadd <4 x float> zeroinitializer, <float 0.0, float 1.0, float 2.0, float 3.0>
33*e80d934aSAlex Bradbury  %a8_float = fadd <8 x float> zeroinitializer, <float 0.0, float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, float 6.0, float 7.0>
34*e80d934aSAlex Bradbury  %a16_float = fadd <16 x float> zeroinitializer, <float 0.0, float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, float 6.0, float 7.0, float 8.0, float 9.0, float 10.0, float 11.0, float 12.0, float 13.0, float 14.0, float 15.0>
35*e80d934aSAlex Bradbury
36*e80d934aSAlex Bradbury  %a2_double = fadd <2 x double> zeroinitializer, <double 0.0, double 1.0>
37*e80d934aSAlex Bradbury  %a3_double = fadd <3 x double> zeroinitializer, <double 0.0, double 1.0, double 2.0>
38*e80d934aSAlex Bradbury  %a4_double = fadd <4 x double> zeroinitializer, <double 0.0, double 1.0, double 2.0, double 3.0>
39*e80d934aSAlex Bradbury  %a8_double = fadd <8 x double> zeroinitializer, <double 0.0, double 1.0, double 2.0, double 3.0, double 4.0, double 5.0, double 6.0, double 7.0>
40*e80d934aSAlex Bradbury  %a16_double = fadd <16 x double> zeroinitializer, <double 0.0, double 1.0, double 2.0, double 3.0, double 4.0, double 5.0, double 6.0, double 7.0, double 8.0, double 9.0, double 10.0, double 11.0, double 12.0, double 13.0, double 14.0, double 15.0>
41*e80d934aSAlex Bradbury
42*e80d934aSAlex Bradbury
43*e80d934aSAlex Bradbury  %v0 = shufflevector <2 x i8> %a2_i8, <2 x i8>undef, <2 x i32> <i32 1, i32 0>
44*e80d934aSAlex Bradbury  %v1 = shufflevector <3 x i8> %a3_i8, <3 x i8>undef, <3 x i32> <i32 2, i32 1, i32 0>
45*e80d934aSAlex Bradbury  %v2 = shufflevector <4 x i8> %a4_i8, <4 x i8>undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
46*e80d934aSAlex Bradbury  %v3 = shufflevector <8 x i8> %a8_i8, <8 x i8>undef, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
47*e80d934aSAlex Bradbury  %v4 = shufflevector <16 x i8> %a16_i8, <16 x i8>undef, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
48*e80d934aSAlex Bradbury
49*e80d934aSAlex Bradbury  %v5 = shufflevector <2 x i16> %a2_i16, <2 x i16>undef, <2 x i32> <i32 1, i32 0>
50*e80d934aSAlex Bradbury  %v6 = shufflevector <3 x i16> %a3_i16, <3 x i16>undef, <3 x i32> <i32 2, i32 1, i32 0>
51*e80d934aSAlex Bradbury  %v7 = shufflevector <4 x i16> %a4_i16, <4 x i16>undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
52*e80d934aSAlex Bradbury  %v8 = shufflevector <8 x i16> %a8_i16, <8 x i16>undef, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
53*e80d934aSAlex Bradbury  %v9 = shufflevector <16 x i16> %a16_i16, <16 x i16>undef, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
54*e80d934aSAlex Bradbury
55*e80d934aSAlex Bradbury  %v10 = shufflevector <2 x i32> %a2_i32, <2 x i32>undef, <2 x i32> <i32 1, i32 0>
56*e80d934aSAlex Bradbury  %v11 = shufflevector <3 x i32> %a3_i32, <3 x i32>undef, <3 x i32> <i32 2, i32 1, i32 0>
57*e80d934aSAlex Bradbury  %v12 = shufflevector <4 x i32> %a4_i32, <4 x i32>undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
58*e80d934aSAlex Bradbury  %v13 = shufflevector <8 x i32> %a8_i32, <8 x i32>undef, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
59*e80d934aSAlex Bradbury  %v14 = shufflevector <16 x i32> %a16_i32, <16 x i32>undef, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
60*e80d934aSAlex Bradbury
61*e80d934aSAlex Bradbury  %v15 = shufflevector <2 x i64> %a2_i64, <2 x i64>undef, <2 x i32> <i32 1, i32 0>
62*e80d934aSAlex Bradbury  %v16 = shufflevector <3 x i64> %a3_i64, <3 x i64>undef, <3 x i32> <i32 2, i32 1, i32 0>
63*e80d934aSAlex Bradbury  %v17 = shufflevector <4 x i64> %a4_i64, <4 x i64>undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
64*e80d934aSAlex Bradbury  %v18 = shufflevector <8 x i64> %a8_i64, <8 x i64>undef, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
65*e80d934aSAlex Bradbury  %v19 = shufflevector <16 x i64> %a16_i64, <16 x i64>undef, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
66*e80d934aSAlex Bradbury
67*e80d934aSAlex Bradbury  %v20 = shufflevector <2 x float> %a2_float, <2 x float>undef, <2 x i32> <i32 1, i32 0>
68*e80d934aSAlex Bradbury  %v21 = shufflevector <3 x float> %a3_float, <3 x float>undef, <3 x i32> <i32 2, i32 1, i32 0>
69*e80d934aSAlex Bradbury  %v22 = shufflevector <4 x float> %a4_float, <4 x float>undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
70*e80d934aSAlex Bradbury  %v23 = shufflevector <8 x float> %a8_float, <8 x float>undef, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
71*e80d934aSAlex Bradbury  %v24 = shufflevector <16 x float> %a16_float, <16 x float>undef, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
72*e80d934aSAlex Bradbury
73*e80d934aSAlex Bradbury  %v25 = shufflevector <2 x double> %a2_double, <2 x double>undef, <2 x i32> <i32 1, i32 0>
74*e80d934aSAlex Bradbury  %v26 = shufflevector <3 x double> %a3_double, <3 x double>undef, <3 x i32> <i32 2, i32 1, i32 0>
75*e80d934aSAlex Bradbury  %v27 = shufflevector <4 x double> %a4_double, <4 x double>undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
76*e80d934aSAlex Bradbury  %v28 = shufflevector <8 x double> %a8_double, <8 x double>undef, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
77*e80d934aSAlex Bradbury  %v29 = shufflevector <16 x double> %a16_double, <16 x double>undef, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
78*e80d934aSAlex Bradbury
79*e80d934aSAlex Bradbury  ret i32 0
80*e80d934aSAlex Bradbury}
81*e80d934aSAlex Bradbury
82