| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py | |
| ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu | FileCheck %s | |
| declare i64 @llvm.x86.rdpmc(i32) #0 | |
| declare i64 @llvm.x86.rdpru(i32) #0 | |
| define i64 @f(i32 %0) { | |
| ; CHECK-LABEL: f: | |
| ; CHECK: # %bb.0: | |
| ; CHECK-NEXT: xorl %ecx, %ecx | |
| ; CHECK-NEXT: rdpmc | |
| ; CHECK-NEXT: movl %edi, %ecx | |
| ; CHECK-NEXT: rdpru | |
| ; CHECK-NEXT: shlq $32, %rdx | |
| ; CHECK-NEXT: orq %rdx, %rax | |
| ; CHECK-NEXT: retq | |
| %2 = tail call i64 @llvm.x86.rdpmc(i32 0) | |
| %3 = tail call i64 @llvm.x86.rdpru(i32 %0) | |
| ret i64 %3 | |
| } | |
| attributes #0 = { nounwind } |