brintos

brintos / llvm-project-archived public Read only

0
0
Text · 682 B · e017476 Raw
26 lines · c
1// RUN: %clang_cc1 -ffreestanding -triple x86_64-unknown-unknown -emit-llvm -o - %s | FileCheck %s2 3 4#include <x86intrin.h>5 6unsigned long long test_rdpmc(int a) {7  return _rdpmc(a);8// CHECK: @test_rdpmc9// CHECK: call i64 @llvm.x86.rdpmc10}11 12int test_rdtsc(void) {13  return _rdtsc();14// CHECK: @test_rdtsc15// CHECK: call i64 @llvm.x86.rdtsc16}17 18unsigned long long test_rdtscp(unsigned int *a) {19// CHECK: @test_rdtscp20// CHECK: [[RDTSCP:%.*]] = call { i64, i32 } @llvm.x86.rdtscp21// CHECK: [[TSC_AUX:%.*]] = extractvalue { i64, i32 } [[RDTSCP]], 122// CHECK: store i32 [[TSC_AUX]], ptr %{{.*}}23// CHECK: [[TSC:%.*]] = extractvalue { i64, i32 } [[RDTSCP]], 024  return __rdtscp(a);25}26