1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2 ; RUN: llc --mtriple=loongarch64 --mattr=+lasx %s -o - | FileCheck %s
5 define <32 x i8> @shufflevector_v32i8(<32 x i8> %a, <32 x i8> %b) {
6 ; CHECK-LABEL: shufflevector_v32i8:
8 ; CHECK-NEXT: xvrepl128vei.b $xr0, $xr0, 1
10 %c = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1,
11 i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17>
16 define <16 x i16> @shufflevector_v16i16(<16 x i16> %a, <16 x i16> %b) {
17 ; CHECK-LABEL: shufflevector_v16i16:
19 ; CHECK-NEXT: xvrepl128vei.h $xr0, $xr0, 3
21 %c = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3,
22 i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11>
27 define <8 x i32> @shufflevector_v8i32(<8 x i32> %a, <8 x i32> %b) {
28 ; CHECK-LABEL: shufflevector_v8i32:
30 ; CHECK-NEXT: xvpermi.d $xr0, $xr0, 78
31 ; CHECK-NEXT: xvrepl128vei.w $xr0, $xr0, 3
33 %c = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 7, i32 7, i32 7, i32 7, i32 3, i32 3, i32 3, i32 3>
38 define <4 x i64> @shufflevector_v4i64(<4 x i64> %a, <4 x i64> %b) {
39 ; CHECK-LABEL: shufflevector_v4i64:
41 ; CHECK-NEXT: xvrepl128vei.d $xr0, $xr0, 1
43 %c = shufflevector <4 x i64> %a, <4 x i64> %b, <4 x i32> <i32 1, i32 1, i32 3, i32 3>
48 define <8 x float> @shufflevector_v8f32(<8 x float> %a, <8 x float> %b) {
49 ; CHECK-LABEL: shufflevector_v8f32:
51 ; CHECK-NEXT: xvrepl128vei.w $xr0, $xr0, 3
53 %c = shufflevector <8 x float> %a, <8 x float> %b, <8 x i32> <i32 3, i32 3, i32 3, i32 3, i32 7, i32 7, i32 7, i32 7>
58 define <4 x double> @shufflevector_v4f64(<4 x double> %a, <4 x double> %b) {
59 ; CHECK-LABEL: shufflevector_v4f64:
61 ; CHECK-NEXT: xvrepl128vei.d $xr0, $xr1, 1
63 %c = shufflevector <4 x double> %a, <4 x double> %b, <4 x i32> <i32 5, i32 5, i32 7, i32 7>