brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.2 KiB · 9afe16d Raw
130 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc --mtriple=loongarch32 --mattr=+32s,+lasx %s -o - | FileCheck %s3; RUN: llc --mtriple=loongarch64 --mattr=+lasx %s -o - | FileCheck %s4 5;; xvrepl128vei.b6define <32 x i8> @shufflevector_v32i8(<32 x i8> %a, <32 x i8> %b) {7; CHECK-LABEL: shufflevector_v32i8:8; CHECK:       # %bb.0:9; CHECK-NEXT:    xvrepl128vei.b $xr0, $xr0, 110; CHECK-NEXT:    ret11    %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,12                                                               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>13    ret <32 x i8> %c14}15 16;; xvrepl128vei.b17define <32 x i8> @shufflevector_v32i8_undef(<32 x i8> %a) {18; CHECK-LABEL: shufflevector_v32i8_undef:19; CHECK:       # %bb.0:20; CHECK-NEXT:    xvrepl128vei.b $xr0, $xr0, 121; CHECK-NEXT:    ret22    %c = shufflevector <32 x i8> %a, <32 x i8> poison, <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,23                                                                   i32 33, i32 33, i32 33, i32 33, i32 33, i32 33, i32 33, i32 33, i32 33, i32 33, i32 33, i32 33, i32 33, i32 33, i32 33, i32 33>24    ret <32 x i8> %c25}26 27;; xvrepl128vei.h28define <16 x i16> @shufflevector_v16i16(<16 x i16> %a, <16 x i16> %b) {29; CHECK-LABEL: shufflevector_v16i16:30; CHECK:       # %bb.0:31; CHECK-NEXT:    xvrepl128vei.h $xr0, $xr0, 332; CHECK-NEXT:    ret33    %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,34                                                                 i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11>35    ret <16 x i16> %c36}37 38;; xvrepl128vei.h39define <16 x i16> @shufflevector_v16i16_undef(<16 x i16> %a) {40; CHECK-LABEL: shufflevector_v16i16_undef:41; CHECK:       # %bb.0:42; CHECK-NEXT:    xvrepl128vei.h $xr0, $xr0, 343; CHECK-NEXT:    ret44    %c = shufflevector <16 x i16> %a, <16 x i16> poison, <16 x i32> <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3,45                                                                     i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17>46    ret <16 x i16> %c47}48 49;; xvrepl128vei.w50define <8 x i32> @shufflevector_v8i32(<8 x i32> %a, <8 x i32> %b) {51; CHECK-LABEL: shufflevector_v8i32:52; CHECK:       # %bb.0:53; CHECK-NEXT:    xvpermi.d $xr0, $xr0, 7854; CHECK-NEXT:    xvrepl128vei.w $xr0, $xr0, 355; CHECK-NEXT:    ret56    %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>57    ret <8 x i32> %c58}59 60;; xvrepl128vei.w61define <8 x i32> @shufflevector_v8i32_undef(<8 x i32> %a) {62; CHECK-LABEL: shufflevector_v8i32_undef:63; CHECK:       # %bb.0:64; CHECK-NEXT:    xvrepl128vei.w $xr0, $xr0, 265; CHECK-NEXT:    ret66    %c = shufflevector <8 x i32> %a, <8 x i32> poison, <8 x i32> <i32 2, i32 2, i32 2, i32 2, i32 8, i32 8, i32 8, i32 8>67    ret <8 x i32> %c68}69 70;; xvrepl128vei.d71define <4 x i64> @shufflevector_v4i64(<4 x i64> %a, <4 x i64> %b) {72; CHECK-LABEL: shufflevector_v4i64:73; CHECK:       # %bb.0:74; CHECK-NEXT:    xvrepl128vei.d $xr0, $xr0, 175; CHECK-NEXT:    ret76    %c = shufflevector <4 x i64> %a, <4 x i64> %b, <4 x i32> <i32 1, i32 1, i32 3, i32 3>77    ret <4 x i64> %c78}79 80;; xvrepl128vei.d81define <4 x i64> @shufflevector_v4i64_undef(<4 x i64> %a) {82; CHECK-LABEL: shufflevector_v4i64_undef:83; CHECK:       # %bb.0:84; CHECK-NEXT:    xvrepl128vei.d $xr0, $xr0, 185; CHECK-NEXT:    ret86    %c = shufflevector <4 x i64> %a, <4 x i64> poison, <4 x i32> <i32 1, i32 1, i32 5, i32 5>87    ret <4 x i64> %c88}89 90;; xvrepl128vei.w91define <8 x float> @shufflevector_v8f32(<8 x float> %a, <8 x float> %b) {92; CHECK-LABEL: shufflevector_v8f32:93; CHECK:       # %bb.0:94; CHECK-NEXT:    xvrepl128vei.w $xr0, $xr0, 395; CHECK-NEXT:    ret96    %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>97    ret <8 x float> %c98}99 100;; xvrepl128vei.w101define <8 x float> @shufflevector_v8f32_undef(<8 x float> %a) {102; CHECK-LABEL: shufflevector_v8f32_undef:103; CHECK:       # %bb.0:104; CHECK-NEXT:    xvpermi.d $xr0, $xr0, 238105; CHECK-NEXT:    xvrepl128vei.w $xr0, $xr0, 1106; CHECK-NEXT:    ret107    %c = shufflevector <8 x float> %a, <8 x float> poison, <8 x i32> <i32 5, i32 5, i32 5, i32 5, i32 9, i32 9, i32 9, i32 9>108    ret <8 x float> %c109}110 111;; xvrepl128vei.d112define <4 x double> @shufflevector_v4f64(<4 x double> %a, <4 x double> %b) {113; CHECK-LABEL: shufflevector_v4f64:114; CHECK:       # %bb.0:115; CHECK-NEXT:    xvrepl128vei.d $xr0, $xr1, 1116; CHECK-NEXT:    ret117    %c = shufflevector <4 x double> %a, <4 x double> %b, <4 x i32> <i32 5, i32 5, i32 7, i32 7>118    ret <4 x double> %c119}120 121;; xvrepl128vei.d122define <4 x double> @shufflevector_v4f64_undef(<4 x double> %a) {123; CHECK-LABEL: shufflevector_v4f64_undef:124; CHECK:       # %bb.0:125; CHECK-NEXT:    xvrepl128vei.d $xr0, $xr0, 0126; CHECK-NEXT:    ret127    %c = shufflevector <4 x double> %a, <4 x double> poison, <4 x i32> <i32 0, i32 0, i32 7, i32 7>128    ret <4 x double> %c129}130