1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+enqcmd | FileCheck %s --check-prefix=X64
3; RUN: llc < %s -mtriple=i386-unknown-unknown -mattr=+enqcmd | FileCheck %s --check-prefix=X86
4; RUN: llc < %s -mtriple=x86_64-linux-gnux32 -mattr=+enqcmd | FileCheck %s --check-prefix=X32
5
6define i8 @test_enqcmd(i8* %dst, i8* %src) {
7; X64-LABEL: test_enqcmd:
8; X64:       # %bb.0: # %entry
9; X64-NEXT:    enqcmd (%rsi), %rdi
10; X64-NEXT:    sete %al
11; X64-NEXT:    retq
12;
13; X86-LABEL: test_enqcmd:
14; X86:       # %bb.0: # %entry
15; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
16; X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx
17; X86-NEXT:    enqcmd (%eax), %ecx
18; X86-NEXT:    sete %al
19; X86-NEXT:    retl
20;
21; X32-LABEL: test_enqcmd:
22; X32:       # %bb.0: # %entry
23; X32-NEXT:    enqcmd (%esi), %edi
24; X32-NEXT:    sete %al
25; X32-NEXT:    retq
26entry:
27
28
29  %0 = call i8 @llvm.x86.enqcmd(i8* %dst, i8* %src)
30  ret i8 %0
31}
32
33define i8 @test_enqcmds(i8* %dst, i8* %src) {
34; X64-LABEL: test_enqcmds:
35; X64:       # %bb.0: # %entry
36; X64-NEXT:    enqcmds (%rsi), %rdi
37; X64-NEXT:    sete %al
38; X64-NEXT:    retq
39;
40; X86-LABEL: test_enqcmds:
41; X86:       # %bb.0: # %entry
42; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
43; X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx
44; X86-NEXT:    enqcmds (%eax), %ecx
45; X86-NEXT:    sete %al
46; X86-NEXT:    retl
47;
48; X32-LABEL: test_enqcmds:
49; X32:       # %bb.0: # %entry
50; X32-NEXT:    enqcmds (%esi), %edi
51; X32-NEXT:    sete %al
52; X32-NEXT:    retq
53entry:
54
55
56  %0 = call i8 @llvm.x86.enqcmds(i8* %dst, i8* %src)
57  ret i8 %0
58}
59
60declare i8 @llvm.x86.enqcmd(i8*, i8*)
61declare i8 @llvm.x86.enqcmds(i8*, i8*)
62