45 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc --mtriple=loongarch32 --mattr=+32s,+lasx < %s | FileCheck %s3; RUN: llc -mtriple=loongarch64 -mattr=+lasx < %s | FileCheck %s4 5define <32 x i8> @xvsadd_b(<32 x i8> %a, <32 x i8> %b) {6; CHECK-LABEL: xvsadd_b:7; CHECK: # %bb.0:8; CHECK-NEXT: xvsadd.b $xr0, $xr0, $xr19; CHECK-NEXT: ret10 %ret = call <32 x i8> @llvm.sadd.sat.v32i8(<32 x i8> %a, <32 x i8> %b)11 ret <32 x i8> %ret12}13 14define <16 x i16> @xvsadd_h(<16 x i16> %a, <16 x i16> %b) {15; CHECK-LABEL: xvsadd_h:16; CHECK: # %bb.0:17; CHECK-NEXT: xvsadd.h $xr0, $xr0, $xr118; CHECK-NEXT: ret19 %ret = call <16 x i16> @llvm.sadd.sat.v16i16(<16 x i16> %a, <16 x i16> %b)20 ret <16 x i16> %ret21}22 23define <8 x i32> @xvsadd_w(<8 x i32> %a, <8 x i32> %b) {24; CHECK-LABEL: xvsadd_w:25; CHECK: # %bb.0:26; CHECK-NEXT: xvsadd.w $xr0, $xr0, $xr127; CHECK-NEXT: ret28 %ret = call <8 x i32> @llvm.sadd.sat.v8i32(<8 x i32> %a, <8 x i32> %b)29 ret <8 x i32> %ret30}31 32define <4 x i64> @xvsadd_d(<4 x i64> %a, <4 x i64> %b) {33; CHECK-LABEL: xvsadd_d:34; CHECK: # %bb.0:35; CHECK-NEXT: xvsadd.d $xr0, $xr0, $xr136; CHECK-NEXT: ret37 %ret = call <4 x i64> @llvm.sadd.sat.v4i64(<4 x i64> %a, <4 x i64> %b)38 ret <4 x i64> %ret39}40 41declare <32 x i8> @llvm.sadd.sat.v32i8(<32 x i8>, <32 x i8>)42declare <16 x i16> @llvm.sadd.sat.v16i16(<16 x i16>, <16 x i16>)43declare <8 x i32> @llvm.sadd.sat.v8i32(<8 x i32>, <8 x i32>)44declare <4 x i64> @llvm.sadd.sat.v4i64(<4 x i64>, <4 x i64>)45