xref: /llvm-project/llvm/test/CodeGen/SPARC/soft-mul-div.ll (revision 728490257ecc09ada707a0390303bd3c61027a53)
1; RUN: llc -mtriple=sparc -mcpu=v7 -O0 < %s | FileCheck %s
2
3define i32 @test_mul32(i32 %a, i32 %b) #0 {
4    ; CHECK-LABEL: test_mul32
5    ; CHECK:       call .umul
6    %m = mul i32 %a, %b
7    ret i32 %m
8}
9
10define i16 @test_mul16(i16 %a, i16 %b) #0 {
11    ; CHECK-LABEL: test_mul16
12    ; CHECK:       call .umul
13    %m = mul i16 %a, %b
14    ret i16 %m
15}
16
17define i8 @test_mul8(i8 %a, i8 %b) #0 {
18    ; CHECK-LABEL: test_mul8
19    ; CHECK:       call .umul
20    %m = mul i8 %a, %b
21    ret i8 %m
22}
23
24define i32 @test_sdiv32(i32 %a, i32 %b) #0 {
25    ; CHECK-LABEL: test_sdiv32
26    ; CHECK:       call .div
27    %d = sdiv i32 %a, %b
28    ret i32 %d
29}
30
31define i16 @test_sdiv16(i16 %a, i16 %b) #0 {
32    ; CHECK-LABEL: test_sdiv16
33    ; CHECK:       call .div
34    %d = sdiv i16 %a, %b
35    ret i16 %d
36}
37
38define i8 @test_sdiv8(i8 %a, i8 %b) #0 {
39    ; CHECK-LABEL: test_sdiv8
40    ; CHECK:       call .div
41    %d = sdiv i8 %a, %b
42    ret i8 %d
43}
44
45define i32 @test_udiv32(i32 %a, i32 %b) #0 {
46    ; CHECK-LABEL: test_udiv32
47    ; CHECK:       call .udiv
48    %d = udiv i32 %a, %b
49    ret i32 %d
50}
51
52define i16 @test_udiv16(i16 %a, i16 %b) #0 {
53    ; CHECK-LABEL: test_udiv16
54    ; CHECK:       call .udiv
55    %d = udiv i16 %a, %b
56    ret i16 %d
57}
58
59define i8 @test_udiv8(i8 %a, i8 %b) #0 {
60    ; CHECK-LABEL: test_udiv8
61    ; CHECK:       call .udiv
62    %d = udiv i8 %a, %b
63    ret i8 %d
64}
65
66define i32 @test_srem32(i32 %a, i32 %b) #0 {
67    ; CHECK-LABEL: test_srem32
68    ; CHECK:       call .rem
69    %d = srem i32 %a, %b
70    ret i32 %d
71}
72
73define i16 @test_srem16(i16 %a, i16 %b) #0 {
74    ; CHECK-LABEL: test_srem16
75    ; CHECK:       call .rem
76    %d = srem i16 %a, %b
77    ret i16 %d
78}
79
80define i8 @test_srem8(i8 %a, i8 %b) #0 {
81    ; CHECK-LABEL: test_srem8
82    ; CHECK:       call .rem
83    %d = srem i8 %a, %b
84    ret i8 %d
85}
86
87define i32 @test_urem32(i32 %a, i32 %b) #0 {
88    ; CHECK-LABEL: test_urem32
89    ; CHECK:       call .urem
90    %d = urem i32 %a, %b
91    ret i32 %d
92}
93
94define i16 @test_urem16(i16 %a, i16 %b) #0 {
95    ; CHECK-LABEL: test_urem16
96    ; CHECK:       call .urem
97    %d = urem i16 %a, %b
98    ret i16 %d
99}
100
101define i8 @test_urem8(i8 %a, i8 %b) #0 {
102    ; CHECK-LABEL: test_urem8
103    ; CHECK:       call .urem
104    %d = urem i8 %a, %b
105    ret i8 %d
106}
107