<div dir="ltr">You are right!  Now the generated code is - <div><br></div><div><div>  %3 = sext i8 %2 to i64</div></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 7, 2016 at 11:13 PM, Mehdi Amini <span dir="ltr"><<a href="mailto:mehdi.amini@apple.com" target="_blank">mehdi.amini@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><br><div><span class=""><blockquote type="cite"><div>On Sep 7, 2016, at 10:32 AM, Somenath Chakraborty via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:</div><br><div><div dir="ltr"><div style="font-size:12.8px">Hello,</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">I am facing an issue with a small test where there is a chance that sign-extension is not introduced as expected -</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><div>#include <stdio.h></div><div><br></div><div>void func( long x )</div><div>{</div><div>    printf(" %ld \n", x);</div><div>}</div><div><br></div><div>int main()</div><div>{</div><div>    char c = -1;</div></div></div></div></blockquote><div><br></div></span><div>I believe the signedness of char is implementation defined, have you tried using `signed char`?</div><div><br></div><div>— </div><div>Mehdi</div><div><br></div><br><blockquote type="cite"><div><span class=""><div dir="ltr"><div style="font-size:12.8px"><div>    func ( c );  // c is zero extended to x</div><div>    return 0;</div><div>}</div></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">generated IR - </div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><div>define i32 @main() #0 {<br></div><div> ........</div><div>  store i8 -1, i8* %c, align 1</div><div>  %2 = load i8, i8* %c, align 1</div><div><b><i>  <u>%3 = zext i8 %2 to i64</u></i></b></div><div>  call void @func(i64 %3)</div><div>}</div></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">The value to the formal argument is zero-extended, different from x86_64. Is this a known issue ? Am I missing anything ?</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Thanks,</div><div style="font-size:12.8px">Somenath</div><div style="font-size:12.8px"><br></div></div></span>
______________________________<wbr>_________________<br>LLVM Developers mailing list<br><a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br></div></blockquote></div><br></div></blockquote></div><br></div>