llvm-project/llvm/test/CodeGen/Mips/readcyclecounter.ll
yingopq 0c809ea336
[Mips] Reserve hardware register HWR2 (#127775)
Fix pr https://github.com/llvm/llvm-project/pull/127553.
x86_64 failed to run readcyclecounter.ll when enable expensive_check,
it would error "Using an undefined physical register".
2025-02-20 20:53:30 +08:00

46 lines
1.8 KiB
LLVM

;RUN: llc -mtriple=mipsel-linux-gnu -mcpu=mips32r2 < %s | FileCheck %s --check-prefix=MIPSEL
;RUN: llc -mtriple=mips64el-linux-gnuabi64 -mcpu=mips64r2 < %s | FileCheck %s --check-prefix=MIPS64EL
;RUN: llc -mtriple=mipsel-linux-gnu -mcpu=mips2 < %s | FileCheck %s --check-prefix=MIPSEL
;RUN: llc -mtriple=mips64el-linux-gnuabi64 -mcpu=mips3 < %s | FileCheck %s --check-prefix=MIPS64EL
;RUN: llc -mtriple=mipsel -mcpu=mips32r2 < %s | FileCheck %s --check-prefix=MIPSEL
;RUN: llc -mtriple=mips64el -mcpu=mips64r2 < %s | FileCheck %s --check-prefix=MIPS64EL
;RUN: llc -mtriple=mipsel -mcpu=mips2 < %s | FileCheck %s --check-prefix=MIPSEL_NOT_SUPPORTED
;RUN: llc -mtriple=mips64el -mcpu=mips3 < %s | FileCheck %s --check-prefix=MIPS64EL_NOT_SUPPORTED
declare i64 @llvm.readcyclecounter() nounwind readnone
define i64 @test_readcyclecounter() nounwind {
; MIPSEL-LABEL: test_readcyclecounter:
; MIPSEL: # %bb.0: # %entry
; MIPSEL-NEXT: .set push
; MIPSEL-NEXT: .set mips32r2
; MIPSEL-NEXT: rdhwr $2, $hwr_cc
; MIPSEL-NEXT: .set pop
; MIPSEL-NEXT: jr $ra
; MIPSEL-NEXT: addiu $3, $zero, 0
;
; MIPSEL_NOT_SUPPORTED-LABEL: test_readcyclecounter:
; MIPSEL_NOT_SUPPORTED: # %bb.0: # %entry
; MIPSEL_NOT_SUPPORTED-NEXT: addiu $2, $zero, 0
; MIPSEL_NOT_SUPPORTED-NEXT: jr $ra
; MIPSEL_NOT_SUPPORTED-NEXT: addiu $3, $zero, 0
;
; MIPS64EL-LABEL: test_readcyclecounter:
; MIPS64EL: # %bb.0: # %entry
; MIPS64EL-NEXT: .set push
; MIPS64EL-NEXT: .set mips32r2
; MIPS64EL-NEXT: rdhwr $2, $hwr_cc
; MIPS64EL-NEXT: .set pop
; MIPS64EL-NEXT: jr $ra
; MIPS64EL-NEXT: nop
;
; MIPS64EL_NOT_SUPPORTED-LABEL: test_readcyclecounter:
; MIPS64EL_NOT_SUPPORTED: # %bb.0: # %entry
; MIPS64EL_NOT_SUPPORTED-NEXT: jr $ra
; MIPS64EL_NOT_SUPPORTED-NEXT: daddiu $2, $zero, 0
entry:
%tmp0 = tail call i64 @llvm.readcyclecounter()
ret i64 %tmp0
}