Rewrite some tests with FileCHeck in X86 codegen
authorMichael Liao <michael.liao@intel.com>
Mon, 29 Apr 2013 22:41:29 +0000 (22:41 +0000)
committerMichael Liao <michael.liao@intel.com>
Mon, 29 Apr 2013 22:41:29 +0000 (22:41 +0000)
- Revise previous patches of the same purpose by fixing
  *) grep <PA> | not grep <PB> semantically is not the same as
     CHECK: <PA>{{^<PB>.*$}} as the former will check all occurrences of <PA>
     while the later only check the first match. As the result, CHECK needs
     putting in all place where <PA> occurs.
  *) grep <PA> | count <N> needs a final CHECK-NOT of the same pattern.
     (As 'CHECK-<N>' is proposed for discussion, converting 'grep | count <N>'
      where N > 1 is postponed.)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180742 91177308-0d34-0410-b5e6-96231b3b80d8

20 files changed:
test/CodeGen/X86/2007-10-19-SpillerUnfold.ll
test/CodeGen/X86/2008-02-20-InlineAsmClobber.ll
test/CodeGen/X86/2008-11-06-testb.ll
test/CodeGen/X86/2009-05-08-InlineAsmIOffset.ll
test/CodeGen/X86/fastcc-byval.ll
test/CodeGen/X86/fastcc-sret.ll
test/CodeGen/X86/fastcc3struct.ll
test/CodeGen/X86/fp_load_cast_fold.ll
test/CodeGen/X86/mmx-pinsrw.ll
test/CodeGen/X86/peep-test-2.ll
test/CodeGen/X86/private-2.ll
test/CodeGen/X86/store-fp-constant.ll
test/CodeGen/X86/subreg-to-reg-1.ll
test/CodeGen/X86/subreg-to-reg-3.ll
test/CodeGen/X86/switch-crit-edge-constant.ll
test/CodeGen/X86/v4f32-immediate.ll
test/CodeGen/X86/vec_set-B.ll
test/CodeGen/X86/vec_zero_cse.ll
test/CodeGen/X86/x86-64-frameaddr.ll
test/CodeGen/X86/x86-64-pic-3.ll

index d3120f3e0ef7c03e82cea4845d14c4c0b60c07f0..82052b13e18d4f5f2a4a913411d39254ef6c3d57 100644 (file)
@@ -1,4 +1,8 @@
-; RUN: llc < %s -march=x86 -x86-asm-syntax=intel | grep inc | not grep PTR
+; RUN: llc < %s -march=x86 -x86-asm-syntax=intel | FileCheck %s
+
+; CHECK: inc
+; CHECK-NOT: PTR
+; CHECK: {{$}}
 
 define signext   i16 @t(i32* %bitptr, i32* %source, i8** %byteptr, i32 %scale, i32 %round) {
 entry:
index a52b36588a36347b2a2dd812b3bfa2e1ab86b110..b06b249a63260a887566145d85a741f6566bfd47 100644 (file)
@@ -1,5 +1,4 @@
-; RUN: llc < %s | grep "a:" | not grep ax
-; RUN: llc < %s | grep "b:" | not grep ax
+; RUN: llc < %s | FileCheck %s
 ; PR2078
 ; The clobber list says that "ax" is clobbered.  Make sure that eax isn't 
 ; allocated to the input/output register.
@@ -15,6 +14,10 @@ entry:
        ret void
 }
 
+; CHECK: a:
+; CHECK-NOT: ax
+; CHECK: {{$}}
+
 define void @test2(i16* %block, i8* %pixels, i32 %line_size) nounwind  {
 entry:
        %tmp1 = getelementptr i16* %block, i32 64               ; <i16*> [#uses=1]
@@ -22,3 +25,6 @@ entry:
        ret void
 }
 
+; CHECK: b:
+; CHECK-NOT: ax
+; CHECK: {{$}}
index f8f317c2dd46efbe1b4912ab0ffae2aa48bfcf2f..e7caa7a106709e47a15fa438154fe9ec135532aa 100644 (file)
@@ -1,4 +1,6 @@
-; RUN: llc < %s -mtriple=i386-apple-darwin | grep testb
+; RUN: llc < %s -mtriple=i386-apple-darwin | FileCheck %s
+
+; CHECK: testb
 
 ; ModuleID = '<stdin>'
 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
index 738b5fbb7048af6a65cac4841c200d619b7775ca..7468acb95f11b2712d6c98f77487ab79000138ff 100644 (file)
@@ -1,8 +1,9 @@
-; RUN: llc < %s -relocation-model=static > %t
-; RUN: grep "1: ._pv_cpu_ops+8" %t
-; RUN: grep "2: ._G" %t
+; RUN: llc < %s -relocation-model=static | FileCheck %s
 ; PR4152
 
+; CHECK: {{1: ._pv_cpu_ops[+]8}}
+; CHECK: {{2: ._G}}
+
 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
 target triple = "i386-apple-darwin9.6"
        %struct.pv_cpu_ops = type { i32, [2 x i32] }
index 08f4564fc69fe07f4394d9c155732841d5799afa..e6828e42827c5268e7d4add2812828e97734660c 100644 (file)
@@ -1,6 +1,7 @@
 ; RUN: llc < %s -tailcallopt=false | FileCheck %s
 ; CHECK: movl 8(%esp), %eax 
 ; CHECK: movl 8(%esp), %eax 
+; CHECK-NOT: movl 8(%esp), %eax 
 
 ; PR3122
 ; rdar://6400815
index 05705b9431ba220df90c1f1bd242b1f99ac6ec7a..97814dbabdccc9a441907f53aa53a7e49764ff5a 100644 (file)
@@ -1,5 +1,4 @@
 ; RUN: llc < %s -march=x86 -tailcallopt=false | FileCheck %s
-; CHECK: ret{{[^4]*$}}
 
        %struct.foo = type { [4 x i32] }
 
@@ -10,6 +9,8 @@ entry:
        store i32 1, i32* %tmp3, align 8
         ret void
 }
+; CHECK: bar
+; CHECK: ret{{[^4]*$}}
 
 @dst = external global i32
 
@@ -22,3 +23,5 @@ define void @foo() nounwind {
         store i32 %tmp6, i32* @dst
         ret void
 }
+; CHECK: foo
+; CHECK: ret{{[^4]*$}}
index e2c54ac8a13300ff3bcfa04fcca83f4946f7a2a5..98dc2f5a1c78ee2c8b0678531cd5599d26e88859 100644 (file)
@@ -1,5 +1,5 @@
-; RUN: llc < %s -march=x86 -o %t
-; RUN: FileCheck %s -input-file %t
+; RUN: llc < %s -march=x86 | FileCheck %s
+
 ; CHECK: movl {{.}}12, %eax
 ; CHECK: movl {{.}}24, %edx
 ; CHECK: movl {{.}}48, %ecx
index a160ac69442926a41a7eb461e263de0316ebcaca..72ea12f9430e2a417d6ad65d88204adbecf69f52 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 | grep fild | not grep ESP
+; RUN: llc < %s -march=x86 | FileCheck %s
 
 define double @short(i16* %P) {
         %V = load i16* %P               ; <i16> [#uses=1]
@@ -18,3 +18,9 @@ define double @long(i64* %P) {
         ret double %V2
 }
 
+; CHECK: long
+; CHECK: fild
+; CHECK-NOT: ESP
+; CHECK-NOT: esp
+; CHECK: {{$}}
+; CHECK: ret
index d9c7c678d1b2d1d315f711bcfd134214ccbe2d7a..33dd2eb81cfaee8ab03f5b5338ebb82e15cac992 100644 (file)
@@ -1,6 +1,8 @@
-; RUN: llc < %s  -mtriple=x86_64-linux -mcpu=corei7 | grep pinsr
+; RUN: llc < %s  -mtriple=x86_64-linux -mcpu=corei7 | FileCheck %s
 ; PR2562
 
+; CHECK: pinsr
+
 external global i16            ; <i16*>:0 [#uses=1]
 external global <4 x i16>              ; <<4 x i16>*>:1 [#uses=2]
 
index 274517297592ba2156d25a0cb41ee4b69fc12303..e4bafbb6ffab3e393f5ce3ba3eb7a7cf25d82d2a 100644 (file)
@@ -1,4 +1,6 @@
-; RUN: llc < %s -march=x86 | grep testl
+; RUN: llc < %s -march=x86 | FileCheck %s
+
+; CHECK: testl
 
 ; It's tempting to eliminate the testl instruction here and just use the
 ; EFLAGS value from the incl, however it can't be known whether the add
index 8aa744ead8caa9da0ef65c9cd45c79652b04e9ef..4413cee23b33e39e153632c97053cadcd5431e9d 100644 (file)
@@ -1,7 +1,9 @@
-; RUN: llc < %s -mtriple=x86_64-apple-darwin10 | grep L__ZZ20
+; RUN: llc < %s -mtriple=x86_64-apple-darwin10 | FileCheck %s
 ; Quote should be outside of private prefix.
 ; rdar://6855766x
 
+; CHECK: L__ZZ20
+
        %struct.A = type { i32*, i32 }
 @"_ZZ20-[Example1 whatever]E4C.91" = private constant %struct.A { i32* null, i32 1 }           ; <%struct.A*> [#uses=1]
 
index 206886bb608fdcc585a5652b6a2263c869d82571..71df8d3109e6136e94d3edcf93f8dd10bfc12c25 100644 (file)
@@ -1,5 +1,8 @@
-; RUN: llc < %s -march=x86 | not grep rodata
-; RUN: llc < %s -march=x86 | not grep literal
+; RUN: llc < %s -march=x86 | FileCheck %s
+
+; CHECK-NOT: rodata
+; CHECK-NOT: literal
+
 ;
 ; Check that no FP constants in this testcase ends up in the 
 ; constant pool.
index 4f31ab5a92291dabf1d786d7c4ebf207dccd9d65..2931bab0cdd1a9bc0c1f782c0dea8499e25fb15c 100644 (file)
@@ -1,4 +1,7 @@
-; RUN: llc < %s -march=x86-64 | grep "leal     .*), %e.*" | count 1
+; RUN: llc < %s -march=x86-64 | FileCheck %s
+
+; CHECK:     {{leal    .*[)], %e.*}}
+; CHECK-NOT: {{leal    .*[)], %e.*}}
 
 ; Don't eliminate or coalesce away the explicit zero-extension!
 ; This is currently using an leal because of a 3-addressification detail,
index 931ae758ac5ccd020d9031c2ecfa400d8187409a..80ab1a2e2494273e4a0e996f8e3fa2110bacf389 100644 (file)
@@ -1,4 +1,6 @@
-; RUN: llc < %s -march=x86-64 | grep imull
+; RUN: llc < %s -march=x86-64 | FileCheck %s
+
+; CHECK: imull
 
 ; Don't eliminate or coalesce away the explicit zero-extension!
 
index 1f2ab0dbcbe96f774d038babfb2c92ff85edc868..18f987e72213326aa626d416a6ce3d8c12a86ad7 100644 (file)
@@ -1,6 +1,8 @@
 ; PR925
-; RUN: llc < %s -march=x86 | \
-; RUN:   grep mov.*str1 | count 1
+; RUN: llc < %s -march=x86 | FileCheck %s
+
+; CHECK:      {{mov.*str1}}
+; CHECK-NOT:  {{mov.*str1}}
 
 target datalayout = "e-p:32:32"
 target triple = "i686-apple-darwin8.7.2"
index b5ebaa74bd0712eec6dfbbf0ae20054d31ec28ef..68d20a04ecf0de8a2355c6b30832480c660ce03d 100644 (file)
@@ -1,4 +1,6 @@
-; RUN: llc < %s -march=x86 -mattr=+sse | grep movaps
+; RUN: llc < %s -march=x86 -mattr=+sse | FileCheck %s
+
+; CHECK: movaps
 
 define <4 x float> @foo() {
   ret <4 x float> <float 0x4009C9D0A0000000, float 0x4002666660000000, float 0x3FF3333340000000, float 0x3FB99999A0000000>
index f5b3e8baa33a90dec0623e7583a4ff5d17b2a837..5578ecaf0007755c55fe198c8219f65b499b8532 100644 (file)
@@ -1,6 +1,8 @@
-; RUN: llc < %s -march=x86 -mattr=+sse2 | not grep movaps
+; RUN: llc < %s -march=x86 -mattr=+sse2 | FileCheck %s
 ; RUN: llc < %s -march=x86 -mattr=+sse2 | grep esp | count 2
 
+; CHECK-NOT: movaps
+
 ; These should both generate something like this:
 ;_test3:
 ;      movl    $1234567, %eax
index 41ea0245ed86426ed226a481bf1dcb7716fa08b1..bda3feff2b005739c74a04549ee7aee9f6ea99f8 100644 (file)
@@ -1,7 +1,13 @@
-; RUN: llc < %s -relocation-model=static -march=x86 -mcpu=yonah | grep xorps | count 1
-; RUN: llc < %s -relocation-model=static -march=x86 -mcpu=yonah | grep pcmpeqd | count 1
+; RUN: llc < %s -relocation-model=static -march=x86 -mcpu=yonah | FileCheck %s
+; RUN: llc < %s -relocation-model=static -march=x86 -mcpu=yonah | FileCheck -check-prefix CHECK2 %s
 ; 64-bit stores here do not use MMX.
 
+; CHECK: xorps
+; CHECK-NOT: xorps
+
+; CHECK2: pcmpeqd
+; CHECK2-NOT: pcmpeqd
+
 @M1 = external global <1 x i64>
 @M2 = external global <2 x i32>
 
index 57163d3c6839826431d57d35d40b0971a02218d9..7d36a7af6aaa82efb3db0914b0ee06d415fb207b 100644 (file)
@@ -1,4 +1,9 @@
-; RUN: llc < %s -march=x86-64 | grep movq | grep rbp
+; RUN: llc < %s -march=x86-64 | FileCheck %s
+
+; CHECK: stack_end_address
+; CHECK: {{movq.+rbp.*$}}
+; CHECK: {{movq.+rbp.*$}}
+; CHECK: ret
 
 define i64* @stack_end_address() nounwind  {
 entry:
index ba933788a3a5f8b1c0a97a5dc76a23e5515df7fc..1b0ddc6fe5ad45cfe9ec229ca1452245ac1611ef 100644 (file)
@@ -1,6 +1,9 @@
-; RUN: llc < %s -mtriple=x86_64-pc-linux -relocation-model=pic -o %t1
-; RUN: grep "callq     f" %t1
-; RUN: not grep "callq f@PLT" %t1
+; RUN: llc < %s -mtriple=x86_64-pc-linux -relocation-model=pic | FileCheck %s
+
+
+; CHECK-NOT: {{callq   f@PLT}}
+; CHECK: {{callq       f}}
+; CHECK-NOT: {{callq   f@PLT}}
 
 define void @g() {
 entry: