xref: /llvm-project/llvm/test/Transforms/DCE/intrinsics-mips.ll (revision 99a10f1fe8a7e4b0fdb4c6dd5e7f24f87e0d3695)
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