Rewrite X86 codegen regression test with FileCheck
authorMichael Liao <michael.liao@intel.com>
Tue, 30 Apr 2013 07:51:08 +0000 (07:51 +0000)
committerMichael Liao <michael.liao@intel.com>
Tue, 30 Apr 2013 07:51:08 +0000 (07:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180776 91177308-0d34-0410-b5e6-96231b3b80d8

16 files changed:
test/CodeGen/X86/2006-07-31-SingleRegClass.ll
test/CodeGen/X86/2007-03-24-InlineAsmVectorOp.ll
test/CodeGen/X86/2007-05-17-ShuffleISelBug.ll
test/CodeGen/X86/2007-11-04-rip-immediate-constant.ll
test/CodeGen/X86/2009-03-25-TestBug.ll
test/CodeGen/X86/2009-05-23-available_externally.ll
test/CodeGen/X86/2009-06-05-ScalarToVectorByteMMX.ll
test/CodeGen/X86/2009-08-08-CastError.ll
test/CodeGen/X86/call-imm.ll
test/CodeGen/X86/commute-intrinsic.ll
test/CodeGen/X86/fold-imm.ll
test/CodeGen/X86/fp-immediate-shorten.ll
test/CodeGen/X86/pr2656.ll
test/CodeGen/X86/vec_set-9.ll
test/CodeGen/X86/vec_shuffle-28.ll
test/CodeGen/X86/zext-inreg-0.ll

index c5c74d104863b4d9c7ffd0d03a095a12ad9f406e..c4b08a3be2832f0bf9c360a2d2e549ecea595d96 100644 (file)
@@ -1,7 +1,8 @@
 ; PR850
-; RUN: llc < %s -march=x86 -x86-asm-syntax=att > %t
-; RUN: grep "movl 4(%eax),%ebp" %t
-; RUN: grep "movl 0(%eax), %ebx" %t
+; RUN: llc < %s -march=x86 -x86-asm-syntax=att | FileCheck %s
+
+; CHECK: {{movl 4[(]%eax[)],%ebp}}
+; CHECK: {{movl 0[(]%eax[)], %ebx}}
 
 define i32 @foo(i32 %__s.i.i, i32 %tmp5.i.i, i32 %tmp6.i.i, i32 %tmp7.i.i, i32 %tmp8.i.i) {
        %tmp9.i.i = call i32 asm sideeffect "push %ebp\0Apush %ebx\0Amovl 4($2),%ebp\0Amovl 0($2), %ebx\0Amovl $1,%eax\0Aint  $$0x80\0Apop  %ebx\0Apop %ebp", "={ax},i,0,{cx},{dx},{si},{di}"( i32 192, i32 %__s.i.i, i32 %tmp5.i.i, i32 %tmp6.i.i, i32 %tmp7.i.i, i32 %tmp8.i.i )              ; <i32> [#uses=1]
index 18b06dc0857c699e7f34971431533ba3c9839bb4..366f5830392d7e054f0920ff17a1390bf17da80e 100644 (file)
@@ -1,8 +1,9 @@
-; RUN: llc < %s -mcpu=yonah -march=x86 | \
-; RUN:   grep "cmpltsd %xmm0, %xmm0"
+; RUN: llc < %s -mcpu=yonah -march=x86 | FileCheck %s
+
 target datalayout = "e-p:32:32"
 target triple = "i686-apple-darwin9"
 
+; CHECK: {{cmpltsd %xmm0, %xmm0}}
 
 define void @acoshf() {
        %tmp19 = tail call <2 x double> asm sideeffect "pcmpeqd $0, $0 \0A\09 cmpltsd $0, $0", "=x,0,~{dirflag},~{fpsr},~{flags}"( <2 x double> zeroinitializer )               ; <<2 x double>> [#uses=0]
index b27ef836960fcaca563e9c3655342072f83c3b1b..38fc5e18fe284179105f23f26b4efc151cefa09c 100644 (file)
@@ -1,5 +1,6 @@
-; RUN: llc < %s -march=x86 -mattr=+sse2
-; RUN: llc < %s -march=x86 -mattr=+sse2 | not grep punpckhwd
+; RUN: llc < %s -march=x86 -mattr=+sse2 | FileCheck %s
+
+; CHECK-NOT: punpckhwd
 
 declare <16 x i8> @llvm.x86.sse2.packuswb.128(<8 x i16>, <8 x i16>)
 
index 56a109acfc79c61b857c315abb3e11e1a3d062d4..c4670242b531e997f395f10292db0cc02ab83bf1 100644 (file)
@@ -1,9 +1,11 @@
-; RUN: llc < %s -relocation-model=static | grep "foo str$"
+; RUN: llc < %s -relocation-model=static | FileCheck %s
 ; PR1761
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
 target triple = "x86_64-pc-linux"
 @str = internal constant [12 x i8] c"init/main.c\00"           ; <[12 x i8]*> [#uses=1]
 
+; CHECK: {{foo str$}}
+
 define i32 @unknown_bootoption() {
 entry:
        tail call void asm sideeffect "foo ${0:c}\0A", "i,~{dirflag},~{fpsr},~{flags}"( i8* getelementptr ([12 x i8]* @str, i32 0, i64 0) )
index f40fddc5a36d0b4f84bf4329fef86a43381046b6..cc1d73da05c5afbeb2eba943c32c6a05f5a3e1a8 100644 (file)
@@ -1,8 +1,9 @@
-; RUN: llc < %s -march=x86 -o %t
-; RUN: not grep and %t
-; RUN: not grep shr %t
+; RUN: llc < %s -march=x86 | FileCheck %s
 ; rdar://6661955
 
+; CHECK-NOT: and
+; CHECK-NOT: shr
+
 @hello = internal constant [7 x i8] c"hello\0A\00"
 @world = internal constant [7 x i8] c"world\0A\00"
 
index 94773d91ea17db984a3e58778446007d8925a056..c990108a21c20ec00d35c384953a7072456bdf8f 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc < %s -relocation-model=pic | grep atoi | grep PLT
+; RUN: llc < %s -relocation-model=pic | FileCheck %s
 ; PR4253
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
 target triple = "x86_64-unknown-linux-gnu"
@@ -9,6 +9,9 @@ entry:
        ret i32 %call
 }
 
+; CHECK: foo
+; CHECK: {{atoi.+PLT}}
+
 define available_externally fastcc i32 @atoi(i8* %__nptr) nounwind readonly {
 entry:
        %call = tail call i64 @strtol(i8* nocapture %__nptr, i8** null, i32 10) nounwind readonly               ; <i64> [#uses=1]
index 30763225a53d6e3eee04e36643c0cb679d255c61..3061dc2c82751db8a00d4ed6636eb4baf56c556a 100644 (file)
@@ -1,4 +1,6 @@
-; RUN: llc < %s -march=x86 -mtriple=i386-linux-gnu -mattr=+mmx,+sse2 | not grep movl
+; RUN: llc < %s -march=x86 -mtriple=i386-linux-gnu -mattr=+mmx,+sse2 | FileCheck %s
+
+; CHECK-NOT: movl
 
 define <8 x i8> @a(i8 zeroext %x) nounwind {
   %r = insertelement <8 x i8> undef, i8 %x, i32 0
index 2dc812dbc62d9fa50b2c5972b07598407a116772..748c5a8cc196a1dc6ed46d9d38460c8d4af84378 100644 (file)
@@ -1,4 +1,6 @@
-; RUN: llc < %s -mtriple=x86_64-pc-mingw64 | grep movabsq
+; RUN: llc < %s -mtriple=x86_64-pc-mingw64 | FileCheck %s
+
+; CHECK: movabsq
 
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
 
index 38cda4d14040532caebe3f4290ab2f3b2191352c..8753594df10aa7c3f39e6faa950ecc9c36785c07 100644 (file)
@@ -1,11 +1,11 @@
-; RUN: llc < %s -mtriple=i386-apple-darwin -relocation-model=static | grep "call.*12345678"
-; RUN: llc < %s -mtriple=i386-apple-darwin -relocation-model=pic | not grep "call.*12345678"
-; RUN: llc < %s -mtriple=i386-pc-linux -relocation-model=dynamic-no-pic | grep "call.*12345678"
+; RUN: llc < %s -mtriple=i386-apple-darwin -relocation-model=static | FileCheck -check-prefix X86STA %s
+; RUN: llc < %s -mtriple=i386-apple-darwin -relocation-model=pic | FileCheck -check-prefix X86PIC %s
+; RUN: llc < %s -mtriple=i386-pc-linux -relocation-model=dynamic-no-pic | FileCheck -check-prefix X86DYN %s
 
 ; Call to immediate is not safe on x86-64 unless we *know* that the
 ; call will be within 32-bits pcrel from the dest immediate.
 
-; RUN: llc < %s -march=x86-64 | grep "call.*\*%rax"
+; RUN: llc < %s -march=x86-64 | FileCheck -check-prefix X64 %s
 
 ; PR3666
 ; PR3773
@@ -16,3 +16,8 @@ entry:
        %0 = call i32 inttoptr (i32 12345678 to i32 (i32)*)(i32 0) nounwind             ; <i32> [#uses=1]
        ret i32 %0
 }
+
+; X86STA: {{call.*12345678}}
+; X86PIC-NOT: {{call.*12345678}}
+; X86DYN: {{call.*12345678}}
+; X64: {{call.*[*]%rax}}
index d810cb1eff78455faa1ce9b063cfa9821a41491c..7d5ca47668921016ed8cb8633e45cc4882dd734f 100644 (file)
@@ -1,4 +1,6 @@
-; RUN: llc < %s -mtriple=i386-apple-darwin -mattr=+sse2 -relocation-model=static | not grep movaps
+; RUN: llc < %s -mtriple=i386-apple-darwin -mattr=+sse2 -relocation-model=static | FileCheck %s
+
+; CHECK-NOT: movaps
 
 @a = external global <2 x i64>         ; <<2 x i64>*> [#uses=1]
 
index f1fcbcfd13b4561456bf455ff48bd11a651a8f8d..16e4786979b99c28c3937e8086fa0825279373f5 100644 (file)
@@ -1,5 +1,4 @@
-; RUN: llc < %s -march=x86 | grep inc
-; RUN: llc < %s -march=x86 | grep add | grep 4
+; RUN: llc < %s -march=x86 | FileCheck %s
 
 define i32 @test(i32 %X) nounwind {
 entry:
@@ -7,8 +6,16 @@ entry:
        ret i32 %0
 }
 
+; CHECK: test
+; CHECK: inc
+; CHECK: ret
+
 define i32 @test2(i32 %X) nounwind {
 entry:
        %0 = add i32 %X, 4
        ret i32 %0
 }
+
+; CHECK: test2
+; CHECK: {{add.*4.*$}}
+; CHECK: ret
index 62d81003a62d7f10f9bce7bc9d6874d7aabea76a..dc59c5a44b4e7381219a654fcc07a6ff1a97dd1c 100644 (file)
@@ -1,7 +1,8 @@
 ;; Test that this FP immediate is stored in the constant pool as a float.
 
-; RUN: llc < %s -march=x86 -mattr=-sse2,-sse3 | \
-; RUN:   grep ".long.1123418112"
+; RUN: llc < %s -march=x86 -mattr=-sse2,-sse3 | FileCheck %s
+
+; CHECK: {{.long.1123418112}}
 
 define double @D() {
         ret double 1.230000e+02
index f0e31f7f5fdc60faaca3fa92c143216548dfc188..1122d2d57114bc1a73b4cc3d4703dd3e42fd4657 100644 (file)
@@ -1,6 +1,9 @@
-; RUN: llc < %s -march=x86 -mattr=+sse2 | grep "xorps.*sp" | count 1
+; RUN: llc < %s -march=x86 -mattr=+sse2 | FileCheck %s
 ; PR2656
 
+; CHECK:     {{xorps.*sp}}
+; CHECK-NOT: {{xorps.*sp}}
+
 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 = "i686-apple-darwin9.4.0"
        %struct.anon = type <{ float, float }>
index b8ec0cf080957052bdbab0c4b89974c2e471455d..6979f6bb1c26cefda7166cbc4e5d56ae7ca94bc6 100644 (file)
@@ -1,5 +1,10 @@
-; RUN: llc < %s -march=x86-64 | grep movd | count 1
-; RUN: llc < %s -march=x86-64 | grep "movlhps.*%xmm0, %xmm0"
+; RUN: llc < %s -march=x86-64 | FileCheck %s
+
+; CHECK: test3
+; CHECK: movd
+; CHECK-NOT: movd
+; CHECK: {{movlhps.*%xmm0, %xmm0}}
+; CHECK-NEXT: ret
 
 define <2 x i64> @test3(i64 %A) nounwind {
 entry:
index 343685bf8ad2c920374df2740e63a7b71b9c6a3f..ebf557762cb922a390f25735bf892df591d6c2bc 100644 (file)
@@ -1,5 +1,7 @@
-; RUN: llc < %s -march=x86 -mcpu=core2 -o %t
-; RUN: grep pshufb %t | count 1
+; RUN: llc < %s -march=x86 -mcpu=core2 | FileCheck %s
+
+; CHECK:     pshufb
+; CHECK-NOT: pshufb
 
 ; FIXME: this test has a superfluous punpcklqdq pre-pshufb currently.
 ;        Don't XFAIL it because it's still better than the previous code.
index ae6221af9d813808f4fa9fbabb90019b80a9380e..688b88db526aea4efd5803e3c978d3c6da471341 100644 (file)
@@ -1,9 +1,12 @@
-; RUN: llc < %s -march=x86 | not grep and
-; RUN: llc < %s -march=x86-64 > %t
-; RUN: not grep and %t
-; RUN: not grep movzbq %t
-; RUN: not grep movzwq %t
-; RUN: not grep movzlq %t
+; RUN: llc < %s -march=x86 | FileCheck -check-prefix=X86 %s
+; RUN: llc < %s -march=x86-64 | FileCheck -check-prefix=X64 %s
+
+; X86-NOT: and
+
+; X64-NOT: and
+; X64-NOT: movzbq
+; X64-NOT: movzwq
+; X64-NOT: movzlq
 
 ; These should use movzbl instead of 'and 255'.
 ; This related to not having a ZERO_EXTEND_REG opcode.