1; RUN: llc < %s -mtriple=x86_64-apple-darwin -march=x86-64 -mcpu=core-avx-i -mattr=fsgsbase | FileCheck %s
2
3define i32 @test_x86_rdfsbase_32() {
4  ; CHECK: rdfsbasel
5  %res = call i32 @llvm.x86.rdfsbase.32()
6  ret i32 %res
7}
8declare i32 @llvm.x86.rdfsbase.32() nounwind readnone
9
10define i32 @test_x86_rdgsbase_32() {
11  ; CHECK: rdgsbasel
12  %res = call i32 @llvm.x86.rdgsbase.32()
13  ret i32 %res
14}
15declare i32 @llvm.x86.rdgsbase.32() nounwind readnone
16
17define i64 @test_x86_rdfsbase_64() {
18  ; CHECK: rdfsbaseq
19  %res = call i64 @llvm.x86.rdfsbase.64()
20  ret i64 %res
21}
22declare i64 @llvm.x86.rdfsbase.64() nounwind readnone
23
24define i64 @test_x86_rdgsbase_64() {
25  ; CHECK: rdgsbaseq
26  %res = call i64 @llvm.x86.rdgsbase.64()
27  ret i64 %res
28}
29declare i64 @llvm.x86.rdgsbase.64() nounwind readnone
30
31define void @test_x86_wrfsbase_32(i32 %x) {
32  ; CHECK: wrfsbasel
33  call void @llvm.x86.wrfsbase.32(i32 %x)
34  ret void
35}
36declare void @llvm.x86.wrfsbase.32(i32) nounwind readnone
37
38define void @test_x86_wrgsbase_32(i32 %x) {
39  ; CHECK: wrgsbasel
40  call void @llvm.x86.wrgsbase.32(i32 %x)
41  ret void
42}
43declare void @llvm.x86.wrgsbase.32(i32) nounwind readnone
44
45define void @test_x86_wrfsbase_64(i64 %x) {
46  ; CHECK: wrfsbaseq
47  call void @llvm.x86.wrfsbase.64(i64 %x)
48  ret void
49}
50declare void @llvm.x86.wrfsbase.64(i64) nounwind readnone
51
52define void @test_x86_wrgsbase_64(i64 %x) {
53  ; CHECK: wrgsbaseq
54  call void @llvm.x86.wrgsbase.64(i64 %x)
55  ret void
56}
57declare void @llvm.x86.wrgsbase.64(i64) nounwind readnone
58