; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5 ; RUN: opt -S < %s -passes=dce | FileCheck %s declare <16 x i8> @llvm.loongarch.lsx.vld(ptr, i32) declare <16 x i8> @llvm.loongarch.lsx.vldx(ptr, i64) declare <16 x i8> @llvm.loongarch.lsx.vldrepl.b(ptr, i32) declare <8 x i16> @llvm.loongarch.lsx.vldrepl.h(ptr, i32) declare <4 x i32> @llvm.loongarch.lsx.vldrepl.w(ptr, i32) declare <2 x i64> @llvm.loongarch.lsx.vldrepl.d(ptr, i32) declare <32 x i8> @llvm.loongarch.lasx.xvld(ptr, i32) declare <32 x i8> @llvm.loongarch.lasx.xvldx(ptr, i64) declare <32 x i8> @llvm.loongarch.lasx.xvldrepl.b(ptr, i32) declare <16 x i16> @llvm.loongarch.lasx.xvldrepl.h(ptr, i32) declare <8 x i32> @llvm.loongarch.lasx.xvldrepl.w(ptr, i32) declare <4 x i64> @llvm.loongarch.lasx.xvldrepl.d(ptr, i32) define void @test_loongarch_lsx_vld(ptr %a) { ; CHECK-LABEL: define void @test_loongarch_lsx_vld( ; CHECK-SAME: ptr [[A:%.*]]) { ; CHECK-NEXT: ret void ; %v = call <16 x i8> @llvm.loongarch.lsx.vld(ptr %a, i32 8) ret void } define void @test_loongarch_lsx_vldx(ptr %a, i64 %b) { ; CHECK-LABEL: define void @test_loongarch_lsx_vldx( ; CHECK-SAME: ptr [[A:%.*]], i64 [[B:%.*]]) { ; CHECK-NEXT: ret void ; %v = call <16 x i8> @llvm.loongarch.lsx.vldx(ptr %a, i64 %b) ret void } define void @test_loongarch_lsx_vldrepl_b(ptr %a) { ; CHECK-LABEL: define void @test_loongarch_lsx_vldrepl_b( ; CHECK-SAME: ptr [[A:%.*]]) { ; CHECK-NEXT: ret void ; %v = call <16 x i8> @llvm.loongarch.lsx.vldrepl.b(ptr %a, i32 12) ret void } define void @test_loongarch_lsx_vldrepl_h(ptr %a) { ; CHECK-LABEL: define void @test_loongarch_lsx_vldrepl_h( ; CHECK-SAME: ptr [[A:%.*]]) { ; CHECK-NEXT: ret void ; %v = call <8 x i16> @llvm.loongarch.lsx.vldrepl.h(ptr %a, i32 12) ret void } define void @test_loongarch_lsx_vldrepl_w(ptr %a) { ; CHECK-LABEL: define void @test_loongarch_lsx_vldrepl_w( ; CHECK-SAME: ptr [[A:%.*]]) { ; CHECK-NEXT: ret void ; %v = call <4 x i32> @llvm.loongarch.lsx.vldrepl.w(ptr %a, i32 4) ret void } define void @test_loongarch_lsx_vldrepl_d(ptr %a) { ; CHECK-LABEL: define void @test_loongarch_lsx_vldrepl_d( ; CHECK-SAME: ptr [[A:%.*]]) { ; CHECK-NEXT: ret void ; %v = call <2 x i64> @llvm.loongarch.lsx.vldrepl.d(ptr %a, i32 4) ret void } define void @test_loongarch_lasx_xvld(ptr %a) { ; CHECK-LABEL: define void @test_loongarch_lasx_xvld( ; CHECK-SAME: ptr [[A:%.*]]) { ; CHECK-NEXT: ret void ; %v = call <32 x i8> @llvm.loongarch.lasx.xvld(ptr %a, i32 4) ret void } define void @test_loongarch_lasx_xvldx(ptr %a, i64 %b) { ; CHECK-LABEL: define void @test_loongarch_lasx_xvldx( ; CHECK-SAME: ptr [[A:%.*]], i64 [[B:%.*]]) { ; CHECK-NEXT: ret void ; %v = call <32 x i8> @llvm.loongarch.lasx.xvldx(ptr %a, i64 %b) ret void } define void @test_loongarch_lasx_xvldrepl_b(ptr %a) { ; CHECK-LABEL: define void @test_loongarch_lasx_xvldrepl_b( ; CHECK-SAME: ptr [[A:%.*]]) { ; CHECK-NEXT: ret void ; %v = call <32 x i8> @llvm.loongarch.lasx.xvldrepl.b(ptr %a, i32 4) ret void } define void @test_loongarch_lasx_xvldrepl_h(ptr %a) { ; CHECK-LABEL: define void @test_loongarch_lasx_xvldrepl_h( ; CHECK-SAME: ptr [[A:%.*]]) { ; CHECK-NEXT: ret void ; %v = call <16 x i16> @llvm.loongarch.lasx.xvldrepl.h(ptr %a, i32 4) ret void } define void @test_loongarch_lasx_xvldrepl_w(ptr %a) { ; CHECK-LABEL: define void @test_loongarch_lasx_xvldrepl_w( ; CHECK-SAME: ptr [[A:%.*]]) { ; CHECK-NEXT: ret void ; %v = call <8 x i32> @llvm.loongarch.lasx.xvldrepl.w(ptr %a, i32 4) ret void } define void @test_loongarch_lasx_xvldrepl_d(ptr %a) { ; CHECK-LABEL: define void @test_loongarch_lasx_xvldrepl_d( ; CHECK-SAME: ptr [[A:%.*]]) { ; CHECK-NEXT: ret void ; %v = call <4 x i64> @llvm.loongarch.lasx.xvldrepl.d(ptr %a, i32 4) ret void }