| Dimitry Andric | 227b928 | 2016-01-03 17:22:03 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+xsave | FileCheck %s | 
|  | 2 |  | 
|  | 3 | define void @test_xsave(i8* %ptr, i32 %hi, i32 %lo) { | 
|  | 4 | ; CHECK-LABEL: test_xsave | 
|  | 5 | ; CHECK: movl  %edx, %eax | 
|  | 6 | ; CHECK: movl  %esi, %edx | 
|  | 7 | ; CHECK: xsave (%rdi) | 
|  | 8 | call void @llvm.x86.xsave(i8* %ptr, i32 %hi, i32 %lo) | 
|  | 9 | ret void; | 
|  | 10 | } | 
|  | 11 | declare void @llvm.x86.xsave(i8*, i32, i32) | 
|  | 12 |  | 
|  | 13 | define void @test_xsave64(i8* %ptr, i32 %hi, i32 %lo) { | 
|  | 14 | ; CHECK-LABEL: test_xsave64 | 
|  | 15 | ; CHECK: movl    %edx, %eax | 
|  | 16 | ; CHECK: movl    %esi, %edx | 
|  | 17 | ; CHECK: xsave64 (%rdi) | 
|  | 18 | call void @llvm.x86.xsave64(i8* %ptr, i32 %hi, i32 %lo) | 
|  | 19 | ret void; | 
|  | 20 | } | 
|  | 21 | declare void @llvm.x86.xsave64(i8*, i32, i32) | 
|  | 22 |  | 
|  | 23 | define void @test_xrstor(i8* %ptr, i32 %hi, i32 %lo) { | 
|  | 24 | ; CHECK-LABEL: test_xrstor | 
|  | 25 | ; CHECK: movl   %edx, %eax | 
|  | 26 | ; CHECK: movl   %esi, %edx | 
|  | 27 | ; CHECK: xrstor (%rdi) | 
|  | 28 | call void @llvm.x86.xrstor(i8* %ptr, i32 %hi, i32 %lo) | 
|  | 29 | ret void; | 
|  | 30 | } | 
|  | 31 | declare void @llvm.x86.xrstor(i8*, i32, i32) | 
|  | 32 |  | 
|  | 33 | define void @test_xrstor64(i8* %ptr, i32 %hi, i32 %lo) { | 
|  | 34 | ; CHECK-LABEL: test_xrstor64 | 
|  | 35 | ; CHECK: movl     %edx, %eax | 
|  | 36 | ; CHECK: movl     %esi, %edx | 
|  | 37 | ; CHECK: xrstor64 (%rdi) | 
|  | 38 | call void @llvm.x86.xrstor64(i8* %ptr, i32 %hi, i32 %lo) | 
|  | 39 | ret void; | 
|  | 40 | } | 
|  | 41 | declare void @llvm.x86.xrstor64(i8*, i32, i32) |