xref: /aosp_15_r20/external/llvm/test/CodeGen/Mips/ex2.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@.str = private unnamed_addr constant [6 x i8] c"hello\00", align 1
4*9880d681SAndroid Build Coastguard Worker@_ZTIPKc = external constant i8*
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Workerdefine i32 @main() {
7*9880d681SAndroid Build Coastguard Worker; 16-LABEL: main:
8*9880d681SAndroid Build Coastguard Worker; 16: 	.cfi_startproc
9*9880d681SAndroid Build Coastguard Worker; 16: 	save	$16, $17, $ra, 32 # 16 bit inst
10*9880d681SAndroid Build Coastguard Worker; 16:   .cfi_def_cfa_offset 32
11*9880d681SAndroid Build Coastguard Worker; 16: 	.cfi_offset 31, -4
12*9880d681SAndroid Build Coastguard Worker; 16: 	.cfi_offset 17, -8
13*9880d681SAndroid Build Coastguard Worker; 16:   .cfi_offset 16, -12
14*9880d681SAndroid Build Coastguard Worker; 16:   .cfi_endproc
15*9880d681SAndroid Build Coastguard Workerentry:
16*9880d681SAndroid Build Coastguard Worker  %retval = alloca i32, align 4
17*9880d681SAndroid Build Coastguard Worker  store i32 0, i32* %retval
18*9880d681SAndroid Build Coastguard Worker  %exception = call i8* @__cxa_allocate_exception(i32 4) nounwind
19*9880d681SAndroid Build Coastguard Worker  %0 = bitcast i8* %exception to i8**
20*9880d681SAndroid Build Coastguard Worker  store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i32 0, i32 0), i8** %0
21*9880d681SAndroid Build Coastguard Worker  call void @__cxa_throw(i8* %exception, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) noreturn
22*9880d681SAndroid Build Coastguard Worker  unreachable
23*9880d681SAndroid Build Coastguard Worker
24*9880d681SAndroid Build Coastguard Workerreturn:                                           ; No predecessors!
25*9880d681SAndroid Build Coastguard Worker  %1 = load i32, i32* %retval
26*9880d681SAndroid Build Coastguard Worker  ret i32 %1
27*9880d681SAndroid Build Coastguard Worker}
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Workerdeclare i8* @__cxa_allocate_exception(i32)
30*9880d681SAndroid Build Coastguard Worker
31*9880d681SAndroid Build Coastguard Workerdeclare void @__cxa_throw(i8*, i8*, i8*)
32