xref: /llvm-project/clang/test/CodeGen/X86/usermsr-builtins.c (revision 819ac45d1c1b7a2d784b2606c84de46ce714f278)
1 // RUN: %clang_cc1 %s -ffreestanding -triple=x86_64-unknown-unknown -target-feature +usermsr \
2 // RUN: -emit-llvm -o - -Wall -Werror -pedantic -Wno-gnu-statement-expression | FileCheck %s
3 
4 #include <x86gprintrin.h>
5 
test_urdmsr(unsigned long long __A)6 unsigned long long test_urdmsr(unsigned long long __A) {
7   // CHECK-LABEL: @test_urdmsr(
8   // CHECK: call i64 @llvm.x86.urdmsr(
9   return _urdmsr(__A);
10 }
11 
test_urdmsr_const(unsigned long long __A)12 unsigned long long test_urdmsr_const(unsigned long long __A) {
13   // CHECK-LABEL: @test_urdmsr_const(
14   // CHECK: call i64 @llvm.x86.urdmsr(
15   return _urdmsr(123u);
16 }
17 
test_uwrmsr(unsigned long long __A,unsigned long long __B)18 void test_uwrmsr(unsigned long long __A, unsigned long long __B) {
19   // CHECK-LABEL: @test_uwrmsr(
20   // CHECK: call void @llvm.x86.uwrmsr(
21   _uwrmsr(__A, __B);
22 }
23 
test_uwrmsr_const(unsigned long long __A,unsigned long long __B)24 void test_uwrmsr_const(unsigned long long __A, unsigned long long __B) {
25   // CHECK-LABEL: @test_uwrmsr_const(
26   // CHECK: call void @llvm.x86.uwrmsr(
27   _uwrmsr(123u, __B);
28 }
29 
30