]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CodeGen/X86/tail-call-casts.ll
Vendor import of llvm trunk r291274:
[FreeBSD/FreeBSD.git] / test / CodeGen / X86 / tail-call-casts.ll
1 ; RUN: llc -mtriple=i686-unknown-linux-gnu -o - %s | FileCheck %s
2
3 declare void @g_bool(i1 zeroext)
4 define void @f_bool(i1 zeroext %x) {
5 entry:
6   tail call void @g_bool(i1 zeroext %x)
7   ret void
8
9 ; Forwarding a bool in a tail call works.
10 ; CHECK-LABEL: f_bool:
11 ; CHECK-NOT:   movz
12 ; CHECK:       jmp g_bool
13 }
14
15
16 declare void @g_float(float)
17 define void @f_i32(i32 %x) {
18 entry:
19   %0 = bitcast i32 %x to float
20   tail call void @g_float(float %0)
21   ret void
22
23 ; Forwarding a bitcasted value works too.
24 ; CHECK-LABEL: f_i32
25 ; CHECK-NOT:   mov
26 ; CHECK:       jmp g_float
27 }