| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2 |
| ; RUN: llc -O0 --frame-pointer=none -mtriple=riscv32 -mattr=+zcmp \ |
| ; RUN: -verify-machineinstrs < %s | FileCheck %s |
| define dso_local i64 @a() #0 { |
| ; CHECK-LABEL: a: |
| ; CHECK: # %bb.0: # %entry |
| ; CHECK-NEXT: addi sp, sp, -16 |
| ; CHECK-NEXT: .LBB0_1: # %entry |
| ; CHECK-NEXT: # =>This Inner Loop Header: Depth=1 |
| ; CHECK-NEXT: rdcycleh a0 |
| ; CHECK-NEXT: sw a0, 8(sp) # 4-byte Folded Spill |
| ; CHECK-NEXT: rdcycle a1 |
| ; CHECK-NEXT: sw a1, 12(sp) # 4-byte Folded Spill |
| ; CHECK-NEXT: rdcycleh a1 |
| ; CHECK-NEXT: bne a0, a1, .LBB0_1 |
| ; CHECK-NEXT: # %bb.2: # %entry |
| ; CHECK-NEXT: lw a1, 8(sp) # 4-byte Folded Reload |
| ; CHECK-NEXT: lw a0, 12(sp) # 4-byte Folded Reload |
| ; CHECK-NEXT: addi sp, sp, 16 |
| ; CHECK-NEXT: ret |
| entry: |
| %0 = call i64 @llvm.readcyclecounter() |
| ret i64 %0 |
| } |
| |
| declare i64 @llvm.readcyclecounter() #1 |
| |
| attributes #0 = { noinline nounwind optnone } |