Skip to content
  • Chris Lattner's avatar
    Implement support for formal arguments. We can now compile this: · 53621a53
    Chris Lattner authored
    int test(int X, short Y, float Z) {
      return (int)(X*Y+Z);
    }
    
    to:
    
    define i32 @test(i32 %X, i16 %Y, float %Z) {
    entry:
            %promote = sext i16 %Y to i32           ; <i32> [#uses=1]
            %mul = mul i32 %promote, %X             ; <i32> [#uses=1]
            %promote3 = sitofp i32 %mul to float            ; <float> [#uses=1]
            %add = add float %promote3, %Z          ; <float> [#uses=1]
            %conv = fptosi float %add to i32                ; <i32> [#uses=1]
            ret i32 %conv
    }
    
    with:
    
    $ clang -emit-llvm t.c | llvm-as | opt -std-compile-opts | llvm-dis
    
    llvm-svn: 39652
    53621a53
Loading