Use Align for TFL::TransientStackAlignment
[llvm-core.git] / test / CodeGen / X86 / fsgsbase.ll
blob98434ae42c8130b851bf6af0bf3c906fd98f37e0
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=fsgsbase | FileCheck %s
4 define i32 @test_x86_rdfsbase_32() {
5 ; CHECK-LABEL: test_x86_rdfsbase_32:
6 ; CHECK:       # %bb.0:
7 ; CHECK-NEXT:    rdfsbasel %eax
8 ; CHECK-NEXT:    retq
9   %res = call i32 @llvm.x86.rdfsbase.32()
10   ret i32 %res
12 declare i32 @llvm.x86.rdfsbase.32() nounwind readnone
14 define i32 @test_x86_rdgsbase_32() {
15 ; CHECK-LABEL: test_x86_rdgsbase_32:
16 ; CHECK:       # %bb.0:
17 ; CHECK-NEXT:    rdgsbasel %eax
18 ; CHECK-NEXT:    retq
19   %res = call i32 @llvm.x86.rdgsbase.32()
20   ret i32 %res
22 declare i32 @llvm.x86.rdgsbase.32() nounwind readnone
24 define i64 @test_x86_rdfsbase_64() {
25 ; CHECK-LABEL: test_x86_rdfsbase_64:
26 ; CHECK:       # %bb.0:
27 ; CHECK-NEXT:    rdfsbaseq %rax
28 ; CHECK-NEXT:    retq
29   %res = call i64 @llvm.x86.rdfsbase.64()
30   ret i64 %res
32 declare i64 @llvm.x86.rdfsbase.64() nounwind readnone
34 define i64 @test_x86_rdgsbase_64() {
35 ; CHECK-LABEL: test_x86_rdgsbase_64:
36 ; CHECK:       # %bb.0:
37 ; CHECK-NEXT:    rdgsbaseq %rax
38 ; CHECK-NEXT:    retq
39   %res = call i64 @llvm.x86.rdgsbase.64()
40   ret i64 %res
42 declare i64 @llvm.x86.rdgsbase.64() nounwind readnone
44 define void @test_x86_wrfsbase_32(i32 %x) {
45 ; CHECK-LABEL: test_x86_wrfsbase_32:
46 ; CHECK:       # %bb.0:
47 ; CHECK-NEXT:    wrfsbasel %edi
48 ; CHECK-NEXT:    retq
49   call void @llvm.x86.wrfsbase.32(i32 %x)
50   ret void
52 declare void @llvm.x86.wrfsbase.32(i32) nounwind readnone
54 define void @test_x86_wrgsbase_32(i32 %x) {
55 ; CHECK-LABEL: test_x86_wrgsbase_32:
56 ; CHECK:       # %bb.0:
57 ; CHECK-NEXT:    wrgsbasel %edi
58 ; CHECK-NEXT:    retq
59   call void @llvm.x86.wrgsbase.32(i32 %x)
60   ret void
62 declare void @llvm.x86.wrgsbase.32(i32) nounwind readnone
64 define void @test_x86_wrfsbase_64(i64 %x) {
65 ; CHECK-LABEL: test_x86_wrfsbase_64:
66 ; CHECK:       # %bb.0:
67 ; CHECK-NEXT:    wrfsbaseq %rdi
68 ; CHECK-NEXT:    retq
69   call void @llvm.x86.wrfsbase.64(i64 %x)
70   ret void
72 declare void @llvm.x86.wrfsbase.64(i64) nounwind readnone
74 define void @test_x86_wrgsbase_64(i64 %x) {
75 ; CHECK-LABEL: test_x86_wrgsbase_64:
76 ; CHECK:       # %bb.0:
77 ; CHECK-NEXT:    wrgsbaseq %rdi
78 ; CHECK-NEXT:    retq
79   call void @llvm.x86.wrgsbase.64(i64 %x)
80   ret void
82 declare void @llvm.x86.wrgsbase.64(i64) nounwind readnone