[RISCV] Add shrinkwrap test cases showing gaps in current impl
[llvm-project.git] / llvm / test / CodeGen / X86 / tail-calls-compatible-attrs.ll
blob83c9e808505b05ad2805cb1f08a7a90ed80eb9aa
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=x86_64-linux < %s | FileCheck %s
4 declare dso_local ptr @foo()
6 define dereferenceable(8) ptr @test1() nounwind {
7 ; CHECK-LABEL: test1:
8 ; CHECK:       # %bb.0:
9 ; CHECK-NEXT:    jmp foo # TAILCALL
10   %ret = tail call ptr @foo()
11   ret ptr %ret
14 define ptr @test2() nounwind {
15 ; CHECK-LABEL: test2:
16 ; CHECK:       # %bb.0:
17 ; CHECK-NEXT:    jmp foo # TAILCALL
18   %ret = tail call dereferenceable(8)  ptr @foo()
19   ret ptr %ret
22 define dereferenceable_or_null(8) ptr @test3() nounwind {
23 ; CHECK-LABEL: test3:
24 ; CHECK:       # %bb.0:
25 ; CHECK-NEXT:    jmp foo # TAILCALL
26   %ret = tail call ptr @foo()
27   ret ptr %ret
30 define ptr @test4() nounwind {
31 ; CHECK-LABEL: test4:
32 ; CHECK:       # %bb.0:
33 ; CHECK-NEXT:    jmp foo # TAILCALL
34   %ret = tail call dereferenceable_or_null(8) ptr @foo()
35   ret ptr %ret
38 define align 8 ptr @test5() nounwind {
39 ; CHECK-LABEL: test5:
40 ; CHECK:       # %bb.0:
41 ; CHECK-NEXT:    jmp foo # TAILCALL
42   %ret = tail call ptr @foo()
43   ret ptr %ret
46 define ptr @test6() nounwind {
47 ; CHECK-LABEL: test6:
48 ; CHECK:       # %bb.0:
49 ; CHECK-NEXT:    jmp foo # TAILCALL
50   %ret = tail call align 8 ptr @foo()
51   ret ptr %ret
55 define noundef ptr @test7() nounwind {
56 ; CHECK-LABEL: test7:
57 ; CHECK:       # %bb.0:
58 ; CHECK-NEXT:    jmp foo # TAILCALL
59   %ret = tail call ptr @foo()
60   ret ptr %ret
63 define ptr @test8() nounwind {
64 ; CHECK-LABEL: test8:
65 ; CHECK:       # %bb.0:
66 ; CHECK-NEXT:    jmp foo # TAILCALL
67   %ret = tail call noundef ptr @foo()
68   ret ptr %ret