Test @zext and @sext fully as well as testing the "short" call syntax.
[oota-llvm.git] / test / Feature / paramattrs.ll
1 ; RUN: llvm-as < %s | llvm-dis > %t1.ll
2 ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
3 ; RUN: diff %t1.ll %t2.ll
4
5 %ZFunTy = type i32(i8 @zext)
6 %SFunTy = type i32(i8 @sext)
7
8 declare i16 @(sext) "test"(i16 @sext %arg)
9 declare i8 @zext "test2" (i16 @zext %a2)
10
11 implementation
12
13 define i32 %main(i32 %argc, i8 **%argv) {
14     %val = trunc i32 %argc to i16
15     %res = call i16 @sext (i16 @sext) *%test(i16 %val)
16     %two = add i16 %res, %res
17     %res = call i8 @zext %test2(i16 %two @zext)
18     %retVal = sext i16 %two to i32
19     ret i32 %retVal
20 }