[X86] Add intrinsics for reading and writing to the flags register
[oota-llvm.git] / test / CodeGen / X86 / pku.ll
1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl --show-mc-encoding| FileCheck %s\r
2 declare i32 @llvm.x86.rdpkru()\r
3 declare void @llvm.x86.wrpkru(i32)\r
4 \r
5 define void @test_x86_wrpkru(i32 %src) {\r
6 ; CHECK-LABEL: test_x86_wrpkru:\r
7 ; CHECK:       ## BB#0:\r
8 ; CHECK-NEXT:    xorl    %ecx, %ecx\r
9 ; CHECK-NEXT:    xorl    %edx, %edx\r
10 ; CHECK-NEXT:    movl    %edi, %eax\r
11 ; CHECK-NEXT:    wrpkru\r
12 ; CHECK-NEXT:    retq\r
13   call void @llvm.x86.wrpkru(i32 %src) \r
14   ret void\r
15 }\r
16 \r
17 define i32 @test_x86_rdpkru() {\r
18 ; CHECK-LABEL: test_x86_rdpkru:\r
19 ; CHECK:      ## BB#0:\r
20 ; CHECK-NEXT: xorl    %ecx, %ecx\r
21 ; CHECK-NEXT: rdpkru\r
22 ; CHECK-NEXT: retq\r
23   %res = call i32 @llvm.x86.rdpkru() \r
24   ret i32 %res \r
25 }\r