1*b8ed69ecSWang Pengcheng; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2*b8ed69ecSWang Pengcheng; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \ 3*b8ed69ecSWang Pengcheng; RUN: | FileCheck -check-prefix=RV32I %s 4*b8ed69ecSWang Pengcheng; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \ 5*b8ed69ecSWang Pengcheng; RUN: | FileCheck -check-prefix=RV64I %s 6*b8ed69ecSWang Pengcheng 7*b8ed69ecSWang Pengcheng; Verify that we lower @llvm.readsteadycounter() correctly. 8*b8ed69ecSWang Pengcheng 9*b8ed69ecSWang Pengchengdeclare i64 @llvm.readsteadycounter() 10*b8ed69ecSWang Pengcheng 11*b8ed69ecSWang Pengchengdefine i64 @test_builtin_readsteadycounter() nounwind { 12*b8ed69ecSWang Pengcheng; RV32I-LABEL: test_builtin_readsteadycounter: 13*b8ed69ecSWang Pengcheng; RV32I: # %bb.0: 14*b8ed69ecSWang Pengcheng; RV32I-NEXT: .LBB0_1: # =>This Inner Loop Header: Depth=1 15*b8ed69ecSWang Pengcheng; RV32I-NEXT: rdtimeh a1 16*b8ed69ecSWang Pengcheng; RV32I-NEXT: rdtime a0 17*b8ed69ecSWang Pengcheng; RV32I-NEXT: rdtimeh a2 18*b8ed69ecSWang Pengcheng; RV32I-NEXT: bne a1, a2, .LBB0_1 19*b8ed69ecSWang Pengcheng; RV32I-NEXT: # %bb.2: 20*b8ed69ecSWang Pengcheng; RV32I-NEXT: ret 21*b8ed69ecSWang Pengcheng; 22*b8ed69ecSWang Pengcheng; RV64I-LABEL: test_builtin_readsteadycounter: 23*b8ed69ecSWang Pengcheng; RV64I: # %bb.0: 24*b8ed69ecSWang Pengcheng; RV64I-NEXT: rdtime a0 25*b8ed69ecSWang Pengcheng; RV64I-NEXT: ret 26*b8ed69ecSWang Pengcheng %1 = tail call i64 @llvm.readsteadycounter() 27*b8ed69ecSWang Pengcheng ret i64 %1 28*b8ed69ecSWang Pengcheng} 29