| ; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+xsave | FileCheck %s |
| ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+xsave | FileCheck %s --check-prefix=CHECK64 |
| |
| define i64 @test_xgetbv(i32 %in) { |
| ; CHECK-LABEL: test_xgetbv |
| ; CHECK: movl 4(%esp), %ecx |
| ; CHECK: xgetbv |
| ; CHECK: ret |
| |
| ; CHECK64-LABEL: test_xgetbv |
| ; CHECK64: movl %edi, %ecx |
| ; CHECK64: xgetbv |
| ; CHECK64: shlq $32, %rdx |
| ; CHECK64: orq %rdx, %rax |
| ; CHECK64: ret |
| |
| %1 = call i64 @llvm.x86.xgetbv(i32 %in) |
| ret i64 %1; |
| } |
| |
| declare i64 @llvm.x86.xgetbv(i32) |