From 52d8e3bd4c0ae48279d624d3540ef1d3db63c261 Mon Sep 17 00:00:00 2001 From: Quentin Colombet Date: Mon, 9 May 2016 19:01:42 +0000 Subject: [PATCH] [X86] Update a regexp in a test case to resist register allocation changes. llvm-svn: 268954 --- .../X86/peephole-na-phys-copy-folding.ll | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/llvm/test/CodeGen/X86/peephole-na-phys-copy-folding.ll b/llvm/test/CodeGen/X86/peephole-na-phys-copy-folding.ll index 441fb02a89e6..4bdfee6f81eb 100644 --- a/llvm/test/CodeGen/X86/peephole-na-phys-copy-folding.ll +++ b/llvm/test/CodeGen/X86/peephole-na-phys-copy-folding.ll @@ -1,5 +1,5 @@ -; RUN: llc -mtriple=i386-linux-gnu %s -o - | FileCheck %s -; RUN: llc -mtriple=x86_64-linux-gnu -mattr=+sahf %s -o - | FileCheck %s +; RUN: llc -mtriple=i386-linux-gnu %s -o - | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK32 +; RUN: llc -mtriple=x86_64-linux-gnu -mattr=+sahf %s -o - | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK64 ; TODO: Reenable verify-machineinstrs once the if (!AXDead) // FIXME in ; X86InstrInfo::copyPhysReg() is resolved. @@ -142,14 +142,21 @@ f: ; CHECK: cmpxchg ; CHECK: seto %al ; CHECK-NEXT: lahf -; Save result of the first cmpxchg into D. -; CHECK-NEXT: mov{{[lq]}} %[[AX:[er]ax]], %[[D:[re]d[xi]]] +; Save result of the first cmpxchg into a temporary. +; For 32-bit ISA, EDX, EAX are used by the results. +; EAX, EBX, ECX, and EDX are used to set the arguments. +; That leaves us EDI and ESI. +; CHECK32-NEXT: movl %[[AX:eax]], %[[TMP:e[ds]i]] +; For 64-bit ISA, RAX is used for both the result and argument. +; This leaves us plenty of choices for the temporary. For now, +; this is rdx, but any register could do. +; CHECK64-NEXT: mov{{[lq]}} %[[AX:[er]ax]], %[[TMP:rdx]] ; CHECK: cmpxchg ; CHECK-NEXT: sete %al ; Save result of the second cmpxchg onto the stack. ; CHECK-NEXT: push{{[lq]}} %[[AX]] ; Restore result of the first cmpxchg from D, put it back in EFLAGS. -; CHECK-NEXT: mov{{[lq]}} %[[D]], %[[AX]] +; CHECK-NEXT: mov{{[lq]}} %[[TMP]], %[[AX]] ; CHECK-NEXT: addb $127, %al ; CHECK-NEXT: sahf ; Restore result of the second cmpxchg from the stack.