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