xref: /aosp_15_r20/external/llvm/test/CodeGen/Mips/llcarry.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc  -march=mipsel -mattr=mips16 -relocation-model=pic -O3 < %s | FileCheck %s -check-prefix=16
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker@i = global i64 4294967295, align 8
4*9880d681SAndroid Build Coastguard Worker@j = global i64 15, align 8
5*9880d681SAndroid Build Coastguard Worker@ii = global i64 4294967295, align 8
6*9880d681SAndroid Build Coastguard Worker@k = common global i64 0, align 8
7*9880d681SAndroid Build Coastguard Worker@l = common global i64 0, align 8
8*9880d681SAndroid Build Coastguard Worker@m = common global i64 0, align 8
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Workerdefine void @test1() nounwind {
11*9880d681SAndroid Build Coastguard Workerentry:
12*9880d681SAndroid Build Coastguard Worker  %0 = load i64, i64* @i, align 8
13*9880d681SAndroid Build Coastguard Worker  %1 = load i64, i64* @j, align 8
14*9880d681SAndroid Build Coastguard Worker  %add = add nsw i64 %1, %0
15*9880d681SAndroid Build Coastguard Worker  store i64 %add, i64* @k, align 8
16*9880d681SAndroid Build Coastguard Worker; 16:	addu	${{[0-9]+}}, ${{[0-9]+}}, ${{[0-9]+}}
17*9880d681SAndroid Build Coastguard Worker; 16:	sltu	${{[0-9]+}}, ${{[0-9]+}}
18*9880d681SAndroid Build Coastguard Worker; 16:	move	${{[0-9]+}}, $t8
19*9880d681SAndroid Build Coastguard Worker; 16:	addu	${{[0-9]+}}, ${{[0-9]+}}, ${{[0-9]+}}
20*9880d681SAndroid Build Coastguard Worker; 16:	addu	${{[0-9]+}}, ${{[0-9]+}}, ${{[0-9]+}}
21*9880d681SAndroid Build Coastguard Worker  ret void
22*9880d681SAndroid Build Coastguard Worker}
23*9880d681SAndroid Build Coastguard Worker
24*9880d681SAndroid Build Coastguard Workerdefine void @test2() nounwind {
25*9880d681SAndroid Build Coastguard Workerentry:
26*9880d681SAndroid Build Coastguard Worker  %0 = load i64, i64* @i, align 8
27*9880d681SAndroid Build Coastguard Worker  %1 = load i64, i64* @j, align 8
28*9880d681SAndroid Build Coastguard Worker  %sub = sub nsw i64 %0, %1
29*9880d681SAndroid Build Coastguard Worker; 16:	subu	${{[0-9]+}}, ${{[0-9]+}}, ${{[0-9]+}}
30*9880d681SAndroid Build Coastguard Worker; 16:	sltu	${{[0-9]+}}, ${{[0-9]+}}
31*9880d681SAndroid Build Coastguard Worker; 16:	move	${{[0-9]+}}, $t8
32*9880d681SAndroid Build Coastguard Worker; 16:	addu	${{[0-9]+}}, ${{[0-9]+}}, ${{[0-9]+}}
33*9880d681SAndroid Build Coastguard Worker; 16:	subu	${{[0-9]+}}, ${{[0-9]+}}, ${{[0-9]+}}
34*9880d681SAndroid Build Coastguard Worker  store i64 %sub, i64* @l, align 8
35*9880d681SAndroid Build Coastguard Worker  ret void
36*9880d681SAndroid Build Coastguard Worker}
37*9880d681SAndroid Build Coastguard Worker
38*9880d681SAndroid Build Coastguard Workerdefine void @test3() nounwind {
39*9880d681SAndroid Build Coastguard Workerentry:
40*9880d681SAndroid Build Coastguard Worker  %0 = load i64, i64* @ii, align 8
41*9880d681SAndroid Build Coastguard Worker  %add = add nsw i64 %0, 15
42*9880d681SAndroid Build Coastguard Worker; 16:	addiu	${{[0-9]+}}, 15
43*9880d681SAndroid Build Coastguard Worker; 16:	sltu	${{[0-9]+}}, ${{[0-9]+}}
44*9880d681SAndroid Build Coastguard Worker; 16:	move	${{[0-9]+}}, $t8
45*9880d681SAndroid Build Coastguard Worker; 16:	addu	${{[0-9]+}}, ${{[0-9]+}}, ${{[0-9]+}}
46*9880d681SAndroid Build Coastguard Worker; 16:	addu	${{[0-9]+}}, ${{[0-9]+}}, ${{[0-9]+}}
47*9880d681SAndroid Build Coastguard Worker  store i64 %add, i64* @m, align 8
48*9880d681SAndroid Build Coastguard Worker  ret void
49*9880d681SAndroid Build Coastguard Worker}
50*9880d681SAndroid Build Coastguard Worker
51*9880d681SAndroid Build Coastguard Worker
52