| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py | |
| ; RUN: llc < %s -mtriple=s390x-ibm-linux | FileCheck %s | |
| ; Verify that we correctly lower ISD::READCYCLECOUNTER. | |
| define i64 @test_builtin_readcyclecounter1() { | |
| ; CHECK-LABEL: test_builtin_readcyclecounter1: | |
| ; CHECK: # %bb.0: | |
| ; CHECK-NEXT: aghi %r15, -168 | |
| ; CHECK-NEXT: .cfi_def_cfa_offset 328 | |
| ; CHECK-NEXT: stckf 160(%r15) | |
| ; CHECK-NEXT: lg %r2, 160(%r15) | |
| ; CHECK-NEXT: aghi %r15, 168 | |
| ; CHECK-NEXT: br %r14 | |
| %1 = tail call i64 @llvm.readcyclecounter() | |
| ret i64 %1 | |
| } | |
| define void @test_builtin_readcyclecounter2(ptr %ptr) { | |
| ; CHECK-LABEL: test_builtin_readcyclecounter2: | |
| ; CHECK: # %bb.0: | |
| ; CHECK-NEXT: stckf 0(%r2) | |
| ; CHECK-NEXT: br %r14 | |
| %1 = tail call i64 @llvm.readcyclecounter() | |
| store i64 %1, ptr %ptr | |
| ret void | |
| } |