xref: /aosp_15_r20/external/llvm/test/CodeGen/ARM/big-endian-neon-trunc-store.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple armeb-eabi -mattr v7,neon -o - | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Workerdefine void @vector_trunc_store_2i64_to_2i16( <2 x i64>* %loadaddr, <2 x i16>* %storeaddr ) {
4*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: vector_trunc_store_2i64_to_2i16:
5*9880d681SAndroid Build Coastguard Worker; CHECK:       vmovn.i64  [[REG:d[0-9]+]]
6*9880d681SAndroid Build Coastguard Worker; CHECK:       vrev32.16  [[REG]], [[REG]]
7*9880d681SAndroid Build Coastguard Worker; CHECK:       vuzp.16    [[REG]], [[REG2:d[0-9]+]]
8*9880d681SAndroid Build Coastguard Worker; CHECK:       vrev32.16  [[REG]], [[REG2]]
9*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* %loadaddr
10*9880d681SAndroid Build Coastguard Worker  %2 = trunc <2 x i64> %1 to <2 x i16>
11*9880d681SAndroid Build Coastguard Worker  store <2 x i16> %2, <2 x i16>* %storeaddr
12*9880d681SAndroid Build Coastguard Worker  ret void
13*9880d681SAndroid Build Coastguard Worker}
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Workerdefine void @vector_trunc_store_4i32_to_4i8( <4 x i32>* %loadaddr, <4 x i8>* %storeaddr ) {
16*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: vector_trunc_store_4i32_to_4i8:
17*9880d681SAndroid Build Coastguard Worker; CHECK:       vmovn.i32 [[REG:d[0-9]+]]
18*9880d681SAndroid Build Coastguard Worker; CHECK:       vrev16.8  [[REG]], [[REG]]
19*9880d681SAndroid Build Coastguard Worker; CHECK:       vuzp.8    [[REG]], [[REG2:d[0-9]+]]
20*9880d681SAndroid Build Coastguard Worker; CHECK:       vrev32.8  [[REG]], [[REG2]]
21*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* %loadaddr
22*9880d681SAndroid Build Coastguard Worker  %2 = trunc <4 x i32> %1 to <4 x i8>
23*9880d681SAndroid Build Coastguard Worker  store <4 x i8> %2, <4 x i8>* %storeaddr
24*9880d681SAndroid Build Coastguard Worker  ret void
25*9880d681SAndroid Build Coastguard Worker}
26*9880d681SAndroid Build Coastguard Worker
27