1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5 2; RUN: opt -S < %s -passes=dce | FileCheck %s 3 4declare i32 @llvm.mips.rddsp(i32) 5declare <4 x i8> @llvm.mips.pick.qb(<4 x i8>, <4 x i8>) 6declare <2 x i16> @llvm.mips.pick.ph(<2 x i16>, <2 x i16>) 7declare i32 @llvm.mips.bposge32() 8declare i32 @llvm.mips.lbux(ptr, i32) 9declare i32 @llvm.mips.lhx(ptr, i32) 10declare i32 @llvm.mips.lwx(ptr, i32) 11declare <16 x i8> @llvm.mips.ld.b(ptr, i32) 12declare <8 x i16> @llvm.mips.ld.h(ptr, i32) 13declare <4 x i32> @llvm.mips.ld.w(ptr, i32) 14declare <2 x i64> @llvm.mips.ld.d(ptr, i32) 15declare <2 x i64> @llvm.mips.ldr.d(ptr, i32) 16declare <4 x i32> @llvm.mips.ldr.w(ptr, i32) 17 18define void @test_mips_rddsp() { 19; CHECK-LABEL: define void @test_mips_rddsp() { 20; CHECK-NEXT: ret void 21; 22 %v = call i32 @llvm.mips.rddsp(i32 4) 23 ret void 24} 25 26define void @test_llvm_mips_pick_qb(<4 x i8> %a, <4 x i8> %b) { 27; CHECK-LABEL: define void @test_llvm_mips_pick_qb( 28; CHECK-SAME: <4 x i8> [[A:%.*]], <4 x i8> [[B:%.*]]) { 29; CHECK-NEXT: ret void 30; 31 %v = call <4 x i8> @llvm.mips.pick.qb(<4 x i8> %a, <4 x i8> %b) 32 ret void 33} 34 35define void @test_llvm_mips_pick_ph(<2 x i16> %a, <2 x i16> %b) { 36; CHECK-LABEL: define void @test_llvm_mips_pick_ph( 37; CHECK-SAME: <2 x i16> [[A:%.*]], <2 x i16> [[B:%.*]]) { 38; CHECK-NEXT: ret void 39; 40 %v = call <2 x i16> @llvm.mips.pick.ph(<2 x i16> %a, <2 x i16> %b) 41 ret void 42} 43 44define void @test_llvm_mips_bposge32() { 45; CHECK-LABEL: define void @test_llvm_mips_bposge32() { 46; CHECK-NEXT: ret void 47; 48 %v = call i32 @llvm.mips.bposge32() 49 ret void 50} 51 52define void @test_llvm_mips_lbux(ptr %a, i32 %b) { 53; CHECK-LABEL: define void @test_llvm_mips_lbux( 54; CHECK-SAME: ptr [[A:%.*]], i32 [[B:%.*]]) { 55; CHECK-NEXT: ret void 56; 57 %v = call i32 @llvm.mips.lbux(ptr %a, i32 %b) 58 ret void 59} 60 61define void @test_llvm_mips_lhx(ptr %a, i32 %b) { 62; CHECK-LABEL: define void @test_llvm_mips_lhx( 63; CHECK-SAME: ptr [[A:%.*]], i32 [[B:%.*]]) { 64; CHECK-NEXT: ret void 65; 66 %v = call i32 @llvm.mips.lhx(ptr %a, i32 %b) 67 ret void 68} 69 70define void @test_llvm_mips_lwx(ptr %a, i32 %b) { 71; CHECK-LABEL: define void @test_llvm_mips_lwx( 72; CHECK-SAME: ptr [[A:%.*]], i32 [[B:%.*]]) { 73; CHECK-NEXT: ret void 74; 75 %v = call i32 @llvm.mips.lwx(ptr %a, i32 %b) 76 ret void 77} 78 79define void @test_llvm_mips_ld_b(ptr %a, i32 %b) { 80; CHECK-LABEL: define void @test_llvm_mips_ld_b( 81; CHECK-SAME: ptr [[A:%.*]], i32 [[B:%.*]]) { 82; CHECK-NEXT: ret void 83; 84 %v = call <16 x i8> @llvm.mips.ld.b(ptr %a, i32 %b) 85 ret void 86} 87 88define void @test_llvm_mips_ld_h(ptr %a, i32 %b) { 89; CHECK-LABEL: define void @test_llvm_mips_ld_h( 90; CHECK-SAME: ptr [[A:%.*]], i32 [[B:%.*]]) { 91; CHECK-NEXT: ret void 92; 93 %v = call <8 x i16> @llvm.mips.ld.h(ptr %a, i32 %b) 94 ret void 95} 96 97define void @test_llvm_mips_ld_w(ptr %a, i32 %b) { 98; CHECK-LABEL: define void @test_llvm_mips_ld_w( 99; CHECK-SAME: ptr [[A:%.*]], i32 [[B:%.*]]) { 100; CHECK-NEXT: ret void 101; 102 %v = call <4 x i32> @llvm.mips.ld.w(ptr %a, i32 %b) 103 ret void 104} 105 106define void @test_llvm_mips_ld_d(ptr %a, i32 %b) { 107; CHECK-LABEL: define void @test_llvm_mips_ld_d( 108; CHECK-SAME: ptr [[A:%.*]], i32 [[B:%.*]]) { 109; CHECK-NEXT: ret void 110; 111 %v = call <2 x i64> @llvm.mips.ld.d(ptr %a, i32 %b) 112 ret void 113} 114 115define void @test_llvm_mips_ldr_d(ptr %a, i32 %b) { 116; CHECK-LABEL: define void @test_llvm_mips_ldr_d( 117; CHECK-SAME: ptr [[A:%.*]], i32 [[B:%.*]]) { 118; CHECK-NEXT: ret void 119; 120 %v = call <2 x i64> @llvm.mips.ldr.d(ptr %a, i32 %b) 121 ret void 122} 123 124define void @test_llvm_mips_ldr_w(ptr %a, i32 %b) { 125; CHECK-LABEL: define void @test_llvm_mips_ldr_w( 126; CHECK-SAME: ptr [[A:%.*]], i32 [[B:%.*]]) { 127; CHECK-NEXT: ret void 128; 129 %v = call <4 x i32> @llvm.mips.ldr.w(ptr %a, i32 %b) 130 ret void 131} 132