brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.5 KiB · be79a44 Raw
88 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=i686-- -mattr=+rdpru | FileCheck %s --check-prefix=X863; RUN: llc < %s -mtriple=i686-- -mattr=+rdpru -fast-isel | FileCheck %s --check-prefix=X864; RUN: llc < %s -mtriple=x86_64-- -mattr=+rdpru | FileCheck %s --check-prefix=X645; RUN: llc < %s -mtriple=x86_64-- -mattr=+rdpru -fast-isel | FileCheck %s --check-prefix=X646; RUN: llc < %s -mtriple=x86_64-- -mcpu=znver2 | FileCheck %s --check-prefix=X647; RUN: llc < %s -mtriple=x86_64-- -mcpu=znver3 -fast-isel | FileCheck %s --check-prefix=X648; RUN: llc < %s -mtriple=x86_64-- -mcpu=znver4 -fast-isel | FileCheck %s --check-prefix=X649; RUN: llc < %s -mtriple=x86_64-- -mcpu=znver5 -fast-isel | FileCheck %s --check-prefix=X6410 11define void @rdpru_asm() {12; X86-LABEL: rdpru_asm:13; X86:       # %bb.0: # %entry14; X86-NEXT:    #APP15; X86-NEXT:    rdpru16; X86-NEXT:    #NO_APP17; X86-NEXT:    retl18;19; X64-LABEL: rdpru_asm:20; X64:       # %bb.0: # %entry21; X64-NEXT:    #APP22; X64-NEXT:    rdpru23; X64-NEXT:    #NO_APP24; X64-NEXT:    retq25entry:26  call void asm sideeffect "rdpru", "~{dirflag},~{fpsr},~{flags}"()27  ret void28}29 30define i64 @rdpru_param(i32 %regid) local_unnamed_addr {31; X86-LABEL: rdpru_param:32; X86:       # %bb.0: # %entry33; X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx34; X86-NEXT:    rdpru35; X86-NEXT:    retl36;37; X64-LABEL: rdpru_param:38; X64:       # %bb.0: # %entry39; X64-NEXT:    movl %edi, %ecx40; X64-NEXT:    rdpru41; X64-NEXT:    shlq $32, %rdx42; X64-NEXT:    orq %rdx, %rax43; X64-NEXT:    retq44entry:45  %0 = tail call i64 @llvm.x86.rdpru(i32 %regid)46  ret i64 %047}48 49define i64 @rdpru_mperf() local_unnamed_addr {50; X86-LABEL: rdpru_mperf:51; X86:       # %bb.0: # %entry52; X86-NEXT:    xorl %ecx, %ecx53; X86-NEXT:    rdpru54; X86-NEXT:    retl55;56; X64-LABEL: rdpru_mperf:57; X64:       # %bb.0: # %entry58; X64-NEXT:    xorl %ecx, %ecx59; X64-NEXT:    rdpru60; X64-NEXT:    shlq $32, %rdx61; X64-NEXT:    orq %rdx, %rax62; X64-NEXT:    retq63entry:64  %0 = tail call i64 @llvm.x86.rdpru(i32 0)65  ret i64 %066}67 68define i64 @rdpru_aperf() local_unnamed_addr {69; X86-LABEL: rdpru_aperf:70; X86:       # %bb.0: # %entry71; X86-NEXT:    movl $1, %ecx72; X86-NEXT:    rdpru73; X86-NEXT:    retl74;75; X64-LABEL: rdpru_aperf:76; X64:       # %bb.0: # %entry77; X64-NEXT:    movl $1, %ecx78; X64-NEXT:    rdpru79; X64-NEXT:    shlq $32, %rdx80; X64-NEXT:    orq %rdx, %rax81; X64-NEXT:    retq82entry:83  %0 = tail call i64 @llvm.x86.rdpru(i32 1)84  ret i64 %085}86 87declare i64 @llvm.x86.rdpru(i32)88