; RUN: llc -mtriple=hexagon < %s | FileCheck %s ; CHECK-LABEL: test_readsteadycounter ; CHECK: r1:0 = c31:30 define i64 @test_readsteadycounter() nounwind { %t0 = call i64 @llvm.readsteadycounter() ret i64 %t0 } ;; Make sure readsteadycounter calls are not optmized out and ;; not moved across function calls. ; CHECK-LABEL: test_readsteadycounter2 ; CHECK: [[R1:r[0-9:]+]] = c31:30 ; CHECK: call fun ; CHECK: [[R2:r[0-9:]+]] = c31:30 ; CHECK: [[R3:r[0-9:]+]] = sub([[R2]],[[R1]]) define i64 @test_readsteadycounter2() { %1 = tail call i64 @llvm.readsteadycounter() tail call void @fun() %2 = tail call i64 @llvm.readsteadycounter() %sub = sub i64 %2, %1 ret i64 %sub } declare i64 @llvm.readsteadycounter() declare void @fun()