Support return of MMX values in 64-bit mode.
[oota-llvm.git] / test / Feature / paramattrs.ll
index df0232c68110064d035caed5135c3f92c5206d98..3bee6177e0b6216e2950affcea131a985c0555a9 100644 (file)
@@ -2,17 +2,21 @@
 ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
 ; RUN: diff %t1.ll %t2.ll
 
-%FunTy = type i32(i8 @zext)
+%ZFunTy = type i32(i8 zeroext)
+%SFunTy = type i32(i8 signext)
 
-declare i16 @(sext) "test"(i16 @sext %arg)      ; Differ only by vararg
-declare i16 "test2" (i16 %a1, i16 %a2)
+declare i16 @"test"(i16 signext %arg) signext 
+declare i8 @"test2" (i16 zeroext %a2) zeroext 
 
-implementation
+declare i32 @"test3"(i32* noalias %p)
 
-define i32 %main(i32 %argc, i8 **%argv) {
+declare void @exit(i32) noreturn nounwind
+
+define i32 @main(i32 inreg %argc, i8 ** inreg %argv) nounwind {
     %val = trunc i32 %argc to i16
-    %res = call i16 @sext (i16 @sext) *%test(i16 %val)
-    %two = add i16 %res, %res
+    %res1 = call i16 (i16 signext) signext *@test(i16 signext %val) signext
+    %two = add i16 %res1, %res1
+    %res2 = call i8 @test2(i16 %two zeroext) zeroext 
     %retVal = sext i16 %two to i32
     ret i32 %retVal
 }