brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.3 KiB · f0aedcb Raw
158 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc < %s -mtriple=x86_64 -o - | FileCheck %s3 4define void @foo(i32 %i) nounwind {5; CHECK-LABEL: foo:6; CHECK:       # %bb.0: # %entry7; CHECK-NEXT:    pushq %rax8; CHECK-NEXT:    cmpl $7, %edi9; CHECK-NEXT:    je .LBB0_310; CHECK-NEXT:  # %bb.1: # %entry11; CHECK-NEXT:    cmpl $5, %edi12; CHECK-NEXT:    jne .LBB0_413; CHECK-NEXT:  # %bb.2: # %if.then14; CHECK-NEXT:    callq bar15; CHECK-NEXT:    popq %rax16; CHECK-NEXT:    jmp bar # TAILCALL17; CHECK-NEXT:  .LBB0_3: # %if.then218; CHECK-NEXT:    callq bar19; CHECK-NEXT:  .LBB0_4: # %if.end320; CHECK-NEXT:    popq %rax21; CHECK-NEXT:    jmp bar # TAILCALL22entry:23  switch i32 %i, label %if.end3 [24    i32 5, label %if.then25    i32 7, label %if.then226  ]27 28if.then:29  tail call void @bar() #030  br label %if.end331 32if.then2:33  tail call void @bar() #034  br label %if.end335 36if.end3:37  tail call void @bar() #038  ret void39}40 41define void @foo_tail(i1 %i) nounwind {42; CHECK-LABEL: foo_tail:43; CHECK:       # %bb.0: # %entry44; CHECK-NEXT:    testb $1, %dil45; CHECK-NEXT:    je bar # TAILCALL46; CHECK-NEXT:  # %bb.1: # %if.then47; CHECK-NEXT:    jmp bar # TAILCALL48entry:49  br i1 %i, label %if.then, label %if.else50 51if.then:52  tail call void @bar() #053  br label %if.end54 55if.else:56  tail call void @bar() #057  br label %if.end58 59if.end:60  ret void61}62 63declare dso_local void @bar()64 65define void @nomerge_trap(i32 %i) {66; CHECK-LABEL: nomerge_trap:67; CHECK:      # %bb.0: # %entry68; CHECK:      # %bb.1: # %entry69; CHECK:      # %bb.2: # %if.then70; CHECK-NEXT: ud271; CHECK-NEXT: LBB{{.*}}: # %if.then272; CHECK-NEXT: ud273; CHECK-NEXT: .LBB{{.*}}: # %if.end374; CHECK-NEXT: ud275entry:76  switch i32 %i, label %if.end3 [77    i32 5, label %if.then78    i32 7, label %if.then279  ]80 81if.then:82  tail call void @llvm.trap() #083  unreachable84 85if.then2:86  tail call void @llvm.trap() #087  unreachable88 89if.end3:90  tail call void @llvm.trap() #091  unreachable92}93 94declare dso_local void @llvm.trap()95 96define void @nomerge_debugtrap(i32 %i) {97; CHECK-LABEL: nomerge_debugtrap:98; CHECK:      # %bb.0: # %entry99; CHECK:      # %bb.1: # %entry100; CHECK:      # %bb.2: # %if.then101; CHECK-NEXT: int3102; CHECK-NEXT: LBB{{.*}}: # %if.then2103; CHECK-NEXT: int3104; CHECK-NEXT: .LBB{{.*}}: # %if.end3105; CHECK-NEXT: int3106entry:107  switch i32 %i, label %if.end3 [108    i32 5, label %if.then109    i32 7, label %if.then2110  ]111 112if.then:113  tail call void @llvm.debugtrap() #0114  unreachable115 116if.then2:117  tail call void @llvm.debugtrap() #0118  unreachable119 120if.end3:121  tail call void @llvm.debugtrap() #0122  unreachable123}124 125define void @nomerge_named_debugtrap(i32 %i) {126; CHECK-LABEL: nomerge_named_debugtrap:127; CHECK:      # %bb.0: # %entry128; CHECK:      # %bb.1: # %entry129; CHECK:      # %bb.2: # %if.then130; CHECK-NEXT: callq trap_func@PLT131; CHECK-NEXT: LBB{{.*}}: # %if.then2132; CHECK-NEXT: callq trap_func@PLT133; CHECK-NEXT: .LBB{{.*}}: # %if.end3134; CHECK-NEXT: callq trap_func@PLT135entry:136  switch i32 %i, label %if.end3 [137    i32 5, label %if.then138    i32 7, label %if.then2139  ]140 141if.then:142  tail call void @llvm.debugtrap() #1143  unreachable144 145if.then2:146  tail call void @llvm.debugtrap() #1147  unreachable148 149if.end3:150  tail call void @llvm.debugtrap() #1151  unreachable152}153 154declare dso_local void @llvm.debugtrap()155 156attributes #0 = { nomerge }157attributes #1 = { nomerge "trap-func-name"="trap_func" }158