;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 }