xref: /aosp_15_r20/external/llvm/test/Feature/paramattrs.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llvm-as < %s | llvm-dis > %t1.ll
2*9880d681SAndroid Build Coastguard Worker; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
3*9880d681SAndroid Build Coastguard Worker; RUN: diff %t1.ll %t2.ll
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Worker%ZFunTy = type i32(i8)
6*9880d681SAndroid Build Coastguard Worker%SFunTy = type i32(i8)
7*9880d681SAndroid Build Coastguard Worker
8*9880d681SAndroid Build Coastguard Workerdeclare signext i16 @"test"(i16 signext %arg)
9*9880d681SAndroid Build Coastguard Workerdeclare zeroext i8 @"test2" (i16 zeroext %a2)
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Workerdeclare i32 @"test3"(i32* noalias %p)
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Workerdeclare void @exit(i32) noreturn nounwind
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Workerdefine i32 @main(i32 inreg %argc, i8 ** inreg %argv) nounwind {
16*9880d681SAndroid Build Coastguard Worker    %val = trunc i32 %argc to i16
17*9880d681SAndroid Build Coastguard Worker    %res1 = call signext i16 (i16 )@test(i16 signext %val)
18*9880d681SAndroid Build Coastguard Worker    %two = add i16 %res1, %res1
19*9880d681SAndroid Build Coastguard Worker    %res2 = call zeroext i8 @test2(i16 zeroext %two )
20*9880d681SAndroid Build Coastguard Worker    %retVal = sext i16 %two to i32
21*9880d681SAndroid Build Coastguard Worker    ret i32 %retVal
22*9880d681SAndroid Build Coastguard Worker}
23*9880d681SAndroid Build Coastguard Worker
24*9880d681SAndroid Build Coastguard Workerdeclare void @function_to_resolve_eagerly() nonlazybind
25