brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 8e77adf Raw
70 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc < %s -mtriple=riscv64 -o - | FileCheck %s3 4define void @foo(i32 %i) nounwind {5; CHECK-LABEL: foo:6; CHECK:       # %bb.0: # %entry7; CHECK-NEXT:    addi sp, sp, -168; CHECK-NEXT:    sd ra, 8(sp) # 8-byte Folded Spill9; CHECK-NEXT:    sext.w a0, a010; CHECK-NEXT:    li a1, 711; CHECK-NEXT:    beq a0, a1, .LBB0_312; CHECK-NEXT:  # %bb.1: # %entry13; CHECK-NEXT:    li a1, 514; CHECK-NEXT:    bne a0, a1, .LBB0_415; CHECK-NEXT:  # %bb.2: # %if.then16; CHECK-NEXT:    call bar17; CHECK-NEXT:    j .LBB0_418; CHECK-NEXT:  .LBB0_3: # %if.then219; CHECK-NEXT:    call bar20; CHECK-NEXT:  .LBB0_4: # %if.end321; CHECK-NEXT:    ld ra, 8(sp) # 8-byte Folded Reload22; CHECK-NEXT:    addi sp, sp, 1623; CHECK-NEXT:    tail bar24entry:25  switch i32 %i, label %if.end3 [26    i32 5, label %if.then27    i32 7, label %if.then228  ]29 30if.then:31  tail call void @bar() #032  br label %if.end333 34if.then2:35  tail call void @bar() #036  br label %if.end337 38if.end3:39  tail call void @bar() #040  ret void41}42 43define void @foo_tail(i1 %i) nounwind {44; CHECK-LABEL: foo_tail:45; CHECK:       # %bb.0: # %entry46; CHECK-NEXT:    andi a0, a0, 147; CHECK-NEXT:    beqz a0, .LBB1_248; CHECK-NEXT:  # %bb.1: # %if.then49; CHECK-NEXT:    tail bar50; CHECK-NEXT:  .LBB1_2: # %if.else51; CHECK-NEXT:    tail bar52entry:53  br i1 %i, label %if.then, label %if.else54 55if.then:56  tail call void @bar() #057  br label %if.end58 59if.else:60  tail call void @bar() #061  br label %if.end62 63if.end:64  ret void65}66 67declare void @bar()68 69attributes #0 = { nomerge }70