brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.6 KiB · 9b89bce Raw
83 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 62; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+xsave,+egpr --show-mc-encoding | FileCheck %s3 4define void @test_xsave(ptr %ptr, i32 %hi, i32 %lo) nounwind {5; CHECK-LABEL: test_xsave:6; CHECK:       # %bb.0:7; CHECK-NEXT:    pushq %rbx # encoding: [0x53]8; CHECK-NEXT:    movl %edx, %r16d # encoding: [0xd5,0x10,0x89,0xd0]9; CHECK-NEXT:    movl %esi, %edx # encoding: [0x89,0xf2]10; CHECK-NEXT:    movq %rdi, %rbx # encoding: [0x48,0x89,0xfb]11; CHECK-NEXT:    #APP12; CHECK-NEXT:    nop # encoding: [0x90]13; CHECK-NEXT:    #NO_APP14; CHECK-NEXT:    movl %r16d, %eax # encoding: [0xd5,0x40,0x89,0xc0]15; CHECK-NEXT:    xsave (%rbx) # encoding: [0x0f,0xae,0x23]16; CHECK-NEXT:    popq %rbx # encoding: [0x5b]17; CHECK-NEXT:    retq # encoding: [0xc3]18  tail call void asm sideeffect "nop", "~{eax},~{ecx},~{esi},~{edi},~{r8},~{r9},~{r10},~{r11}"()19  call void @llvm.x86.xsave(ptr %ptr, i32 %hi, i32 %lo)20  ret void;21}22declare void @llvm.x86.xsave(ptr, i32, i32)23 24define void @test_xsave64(ptr %ptr, i32 %hi, i32 %lo) nounwind {25; CHECK-LABEL: test_xsave64:26; CHECK:       # %bb.0:27; CHECK-NEXT:    pushq %rbx # encoding: [0x53]28; CHECK-NEXT:    movl %edx, %r16d # encoding: [0xd5,0x10,0x89,0xd0]29; CHECK-NEXT:    movl %esi, %edx # encoding: [0x89,0xf2]30; CHECK-NEXT:    movq %rdi, %rbx # encoding: [0x48,0x89,0xfb]31; CHECK-NEXT:    #APP32; CHECK-NEXT:    nop # encoding: [0x90]33; CHECK-NEXT:    #NO_APP34; CHECK-NEXT:    movl %r16d, %eax # encoding: [0xd5,0x40,0x89,0xc0]35; CHECK-NEXT:    xsave64 (%rbx) # encoding: [0x48,0x0f,0xae,0x23]36; CHECK-NEXT:    popq %rbx # encoding: [0x5b]37; CHECK-NEXT:    retq # encoding: [0xc3]38  tail call void asm sideeffect "nop", "~{eax},~{ecx},~{esi},~{edi},~{r8},~{r9},~{r10},~{r11}"()39  call void @llvm.x86.xsave64(ptr %ptr, i32 %hi, i32 %lo)40  ret void;41}42declare void @llvm.x86.xsave64(ptr, i32, i32)43 44define void @test_xrstor(ptr %ptr, i32 %hi, i32 %lo) nounwind {45; CHECK-LABEL: test_xrstor:46; CHECK:       # %bb.0:47; CHECK-NEXT:    pushq %rbx # encoding: [0x53]48; CHECK-NEXT:    movl %edx, %r16d # encoding: [0xd5,0x10,0x89,0xd0]49; CHECK-NEXT:    movl %esi, %edx # encoding: [0x89,0xf2]50; CHECK-NEXT:    movq %rdi, %rbx # encoding: [0x48,0x89,0xfb]51; CHECK-NEXT:    #APP52; CHECK-NEXT:    nop # encoding: [0x90]53; CHECK-NEXT:    #NO_APP54; CHECK-NEXT:    movl %r16d, %eax # encoding: [0xd5,0x40,0x89,0xc0]55; CHECK-NEXT:    xrstor (%rbx) # encoding: [0x0f,0xae,0x2b]56; CHECK-NEXT:    popq %rbx # encoding: [0x5b]57; CHECK-NEXT:    retq # encoding: [0xc3]58  tail call void asm sideeffect "nop", "~{eax},~{ecx},~{esi},~{edi},~{r8},~{r9},~{r10},~{r11}"()59  call void @llvm.x86.xrstor(ptr %ptr, i32 %hi, i32 %lo)60  ret void;61}62declare void @llvm.x86.xrstor(ptr, i32, i32)63 64define void @test_xrstor64(ptr %ptr, i32 %hi, i32 %lo) nounwind {65; CHECK-LABEL: test_xrstor64:66; CHECK:       # %bb.0:67; CHECK-NEXT:    pushq %rbx # encoding: [0x53]68; CHECK-NEXT:    movl %edx, %r16d # encoding: [0xd5,0x10,0x89,0xd0]69; CHECK-NEXT:    movl %esi, %edx # encoding: [0x89,0xf2]70; CHECK-NEXT:    movq %rdi, %rbx # encoding: [0x48,0x89,0xfb]71; CHECK-NEXT:    #APP72; CHECK-NEXT:    nop # encoding: [0x90]73; CHECK-NEXT:    #NO_APP74; CHECK-NEXT:    movl %r16d, %eax # encoding: [0xd5,0x40,0x89,0xc0]75; CHECK-NEXT:    xrstor64 (%rbx) # encoding: [0x48,0x0f,0xae,0x2b]76; CHECK-NEXT:    popq %rbx # encoding: [0x5b]77; CHECK-NEXT:    retq # encoding: [0xc3]78  tail call void asm sideeffect "nop", "~{eax},~{ecx},~{esi},~{edi},~{r8},~{r9},~{r10},~{r11}"()79  call void @llvm.x86.xrstor64(ptr %ptr, i32 %hi, i32 %lo)80  ret void;81}82declare void @llvm.x86.xrstor64(ptr, i32, i32)83