From 14df0ae8d241eb2de2b2cd521bf81b370a09624b Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Sun, 8 Apr 2018 12:29:11 +0000 Subject: [PATCH] [X86][SSE3] Regenerate mwait/monitor intrinsic tests Added i686 checks llvm-svn: 329527 --- llvm/test/CodeGen/X86/apm.ll | 65 ++++++++++++++++++++++++++++++++------------ 1 file changed, 47 insertions(+), 18 deletions(-) diff --git a/llvm/test/CodeGen/X86/apm.ll b/llvm/test/CodeGen/X86/apm.ll index 4ba1e21..9750dd0 100644 --- a/llvm/test/CodeGen/X86/apm.ll +++ b/llvm/test/CodeGen/X86/apm.ll @@ -1,17 +1,34 @@ -; RUN: llc < %s -mtriple=x86_64-linux -mattr=+sse3 | FileCheck %s -; RUN: llc < %s -mtriple=x86_64-win32 -mattr=+sse3 | FileCheck %s -check-prefix=WIN64 +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc < %s -mtriple=i686-linux -mattr=+sse3 | FileCheck %s -check-prefixes=CHECK,X86 +; RUN: llc < %s -mtriple=x86_64-linux -mattr=+sse3 | FileCheck %s -check-prefixes=CHECK,X64 +; RUN: llc < %s -mtriple=x86_64-win32 -mattr=+sse3 | FileCheck %s -check-prefixes=CHECK,WIN64 + ; PR8573 -; CHECK-LABEL: foo: -; CHECK: leaq (%rdi), %rax -; CHECK-NEXT: movl %esi, %ecx -; CHECK-NEXT: monitor -; WIN64-LABEL: foo: -; WIN64: leaq (%rcx), %rax -; WIN64-NEXT: movl %edx, %ecx -; WIN64-NEXT: movl %r8d, %edx -; WIN64-NEXT: monitor define void @foo(i8* %P, i32 %E, i32 %H) nounwind { +; X86-LABEL: foo: +; X86: # %bb.0: # %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %edx +; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: leal (%eax), %eax +; X86-NEXT: monitor +; X86-NEXT: retl +; +; X64-LABEL: foo: +; X64: # %bb.0: # %entry +; X64-NEXT: leaq (%rdi), %rax +; X64-NEXT: movl %esi, %ecx +; X64-NEXT: monitor +; X64-NEXT: retq +; +; WIN64-LABEL: foo: +; WIN64: # %bb.0: # %entry +; WIN64-NEXT: leaq (%rcx), %rax +; WIN64-NEXT: movl %edx, %ecx +; WIN64-NEXT: movl %r8d, %edx +; WIN64-NEXT: monitor +; WIN64-NEXT: retq entry: tail call void @llvm.x86.sse3.monitor(i8* %P, i32 %E, i32 %H) ret void @@ -19,14 +36,26 @@ entry: declare void @llvm.x86.sse3.monitor(i8*, i32, i32) nounwind -; CHECK-LABEL: bar: -; CHECK: movl %edi, %ecx -; CHECK-NEXT: movl %esi, %eax -; CHECK-NEXT: mwait -; WIN64-LABEL: bar: -; WIN64: movl %edx, %eax -; WIN64-NEXT: mwait define void @bar(i32 %E, i32 %H) nounwind { +; X86-LABEL: bar: +; X86: # %bb.0: # %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: mwait +; X86-NEXT: retl +; +; X64-LABEL: bar: +; X64: # %bb.0: # %entry +; X64-NEXT: movl %edi, %ecx +; X64-NEXT: movl %esi, %eax +; X64-NEXT: mwait +; X64-NEXT: retq +; +; WIN64-LABEL: bar: +; WIN64: # %bb.0: # %entry +; WIN64-NEXT: movl %edx, %eax +; WIN64-NEXT: mwait +; WIN64-NEXT: retq entry: tail call void @llvm.x86.sse3.mwait(i32 %E, i32 %H) ret void -- 2.7.4