[ARM] Adjust how NEON shifts are lowered
[llvm-core.git] / test / ExecutionEngine / test-interp-vec-arithm_int.ll
blob0ee14fe31ba308fc0dc9b67ddd74cd73aff44ef1
1 ; RUN: %lli %s > /dev/null
3 define i32 @main() {
4     %A_i8 = add <5 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4>, <i8 12, i8 34, i8 56, i8 78, i8 89>
5     %B_i8 = sub <5 x i8> %A_i8, <i8 11, i8 22, i8 33, i8 44, i8 55>
6     %C_i8 = mul <5 x i8> %B_i8, %B_i8
7     %D_i8 = sdiv <5 x i8> %C_i8, %C_i8
8     %E_i8 = srem <5 x i8> %D_i8, %D_i8
9     %F_i8 = udiv <5 x i8> <i8 5, i8 6, i8 7, i8 8, i8 9>, <i8 6, i8 5, i8 4, i8 3, i8 2>
10     %G_i8 = urem <5 x i8> <i8 6, i8 7, i8 8, i8 9, i8 10>, <i8 5, i8 4, i8 2, i8 2, i8 1>
12     %A_i16 = add <4 x i16> <i16 0, i16 1, i16 2, i16 3>, <i16 123, i16 345, i16 567, i16 789>
13     %B_i16 = sub <4 x i16> %A_i16, <i16 111, i16 222, i16 333, i16 444>
14     %C_i16 = mul <4 x i16> %B_i16, %B_i16
15     %D_i16 = sdiv <4 x i16> %C_i16, %C_i16
16     %E_i16 = srem <4 x i16> %D_i16, %D_i16
17     %F_i16 = udiv <4 x i16> <i16 5, i16 6, i16 7, i16 8>, <i16 6, i16 5, i16 4, i16 3>
18     %G_i16 = urem <4 x i16> <i16 6, i16 7, i16 8, i16 9>, <i16 5, i16 4, i16 3, i16 2>
20     %A_i32 = add <3 x i32> <i32 0, i32 1, i32 2>, <i32 1234, i32 3456, i32 5678>
21     %B_i32 = sub <3 x i32> %A_i32, <i32 1111, i32 2222, i32 3333>
22     %C_i32 = mul <3 x i32> %B_i32, %B_i32
23     %D_i32 = sdiv <3 x i32> %C_i32, %C_i32
24     %E_i32 = srem <3 x i32> %D_i32, %D_i32
25     %F_i32 = udiv <3 x i32> <i32 5, i32 6, i32 7>, <i32 6, i32 5, i32 4>
26     %G_i32 = urem <3 x i32> <i32 6, i32 7, i32 8>, <i32 5, i32 4, i32 3>
28     %A_i64 = add <2 x i64> <i64 0, i64 1>, <i64 12455, i64 34567>
29     %B_i64 = sub <2 x i64> %A_i64, <i64 11111, i64 22222>
30     %C_i64 = mul <2 x i64> %B_i64, %B_i64
31     %D_i64 = sdiv <2 x i64> %C_i64, %C_i64
32     %E_i64 = srem <2 x i64> %D_i64, %D_i64
33     %F_i64 = udiv <2 x i64> <i64 5, i64 6>, <i64 6, i64 5>
34     %G_i64 = urem <2 x i64> <i64 6, i64 7>, <i64 5, i64 3>
36     ret i32 0