; RUN: llvm-upgrade < %s | llvm-as | \
-; RUN: opt -aa-eval -disable-output |& grep '2 no alias respon'
+; RUN: opt -aa-eval -disable-output |& grep {2 no alias respon}
;; TEST that A[1][0] may alias A[0][i].
; Make sure we don't get an assertion failure, even though this is a parse
; error
-; RUN: llvm-as < %s -o /dev/null -f |& grep 'No arguments'
+; RUN: llvm-as < %s -o /dev/null -f |& grep {No arguments}
%ty = type void (i32)
-; RUN: llvm-as < %s >/dev/null |& grep "Expected type 'i32' for element #0"
+; RUN: llvm-as < %s >/dev/null |& grep {Expected type 'i32' for element #0}
; Test the case of a misformed constant initializer
; This should cause an assembler error, not an assertion failure!
constant { i32 } { float 1.0 }
-; RUN: llvm-as < %s -o /dev/null -f |& grep 'Undefined type remains'
+; RUN: llvm-as < %s -o /dev/null -f |& grep {Undefined type remains}
; END.
@d_reduction_0_dparser_gram = global {
; This test checks to make sure that constant exprs fold in some simple
; situations
-; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | not grep '(' &&
-; RUN: llvm-upgrade < %s | llvm-as
+; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | not grep {(}
%A = global long 0
-// RUN: %llvmgxx %s -S -o - | not grep 'llvm.global_ctor'
+// RUN: %llvmgxx %s -S -o - | not grep llvm.global_ctor
struct S {
int A[2];
-// RUN: %llvmgxx %s -emit-llvm -S -o - &&
-// RUN: %llvmgxx %s -emit-llvm -S -o - | not grep 'gnu.linkonce.'
+// RUN: %llvmgxx %s -emit-llvm -S -o - | not grep gnu.linkonce.
// PR1085
class
-// RUN: %llvmgcc -xc %s -S -o /dev/null |& not grep 'warning'
+// RUN: %llvmgcc -xc %s -S -o /dev/null |& not grep warning
struct item {
short delta[4];
-// RUN: %llvmgcc %s -S -o - | llvm-as | llvm-dis | not grep 'call.*__builtin'
+// RUN: %llvmgcc %s -S -o - | llvm-as | llvm-dis | not grep call.*__builtin
int G, H, I;
void foo(int P) {
; RUN: llvm-upgrade < %s | llvm-as | llc -march=alpha -mcpu=ev56 | \
; RUN: not grep -i ctpop
; RUN: llvm-upgrade < %s | llvm-as | llc -march=alpha -mattr=-CIX | \
-; RUN: not grep -i 'ctpop'
+; RUN: not grep -i ctpop
; XFAIL: *
declare long %llvm.ctpop.i64(long)
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=c | not grep 'extern.*msg'
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=c | not grep extern.*msg
; This is PR472
-; RUN: llvm-as < %s | llc -march=x86 | grep '8388635' &&
-; RUN: llvm-as < %s | llc -march=x86-64 | grep '4294981120'
+; RUN: llvm-as < %s | llc -march=x86 | grep 8388635 &&
+; RUN: llvm-as < %s | llc -march=x86-64 | grep 4294981120
; PR 1325
; FIXME: this is xfailed until we figure out ppc bootstrap
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 | not grep '.comm.*X,0'
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 | not grep .comm.*X,0
%X = linkonce global {} {}
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 | not grep 'ori\|lis'
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 | not grep {ori\\|lis}
int %test(int %X) {
%Y = and int %X, 32769 ; andi. r3, r3, 32769
-; RUN: llvm-as < %s | llc -march=ppc32 &&
-; RUN: llvm-as < %s | llc -march=ppc32 | not grep 'extsh\|rlwinm'
+; RUN: llvm-as < %s | llc -march=ppc32 | not grep {extsh\\|rlwinm}
declare i16 @foo() sext
; is invalid code (there is no correct way to order the instruction). Check
; that we do not fold the load into the sub.
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | not grep 'sub.*GLOBAL'
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | not grep sub.*GLOBAL
%GLOBAL = external global int
; XFAIL: *
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | grep 'jmp \*ecx'
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | grep {jmp \\*ecx}
declare int %putchar(int)
int %main(){
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | not grep 'subl.*%esp'
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | not grep {subl.*%esp}
int %f(int %a, int %b) {
%tmp.2 = mul int %a, %a
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 -relocation-model=static | not grep 'subl.*%esp'
+; RUN: llvm-upgrade < %s | llvm-as | \
+; RUN: llc -march=x86 -relocation-model=static | not grep {subl.*%esp}
%A = external global ushort*
%B = external global uint
-; RUN: llvm-as < %s | llc -march=x86-64 -sched=none | grep leaq &&
-; RUN: llvm-as < %s | llc -march=x86-64 -sched=none | not grep ',%rsp)'
+; RUN: llvm-as < %s | llc -march=x86-64 -sched=none | grep leaq
+; RUN: llvm-as < %s | llc -march=x86-64 -sched=none | not grep {,%rsp)}
; PR1103
target datalayout = "e-p:64:64"
; RUN: llvm-as < %s | llc -march=x86 | grep {orl \$1, %eax}
-; RUN: llvm-as < %s | llc -march=x86 | grep {leal 3(,%eax,8)'
+; RUN: llvm-as < %s | llc -march=x86 | grep {leal 3(,%eax,8)}
;; This example can't fold the or into an LEA.
define i32 @test(float ** %tmp2, i32 %tmp12) {
; Check that the shift gets turned into an LEA.
; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 -x86-asm-syntax=intel | \
-; RUN: not grep 'mov E.X, E.X'
+; RUN: not grep {mov E.X, E.X}
; FIXME: We need live variable information about flags to do this xform safely. :(
; XFAIL: *
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | not grep 'set'
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | not grep set
declare bool %llvm.isunordered.f32(float, float)
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | not grep 'leal'
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | not grep leal
%x = external global int
; An integer truncation to i1 should be done with an and instruction to make
; sure only the LSBit survives. Test that this is the case both for a returned
; value and as the operand of a branch.
-; RUN: llvm-as < %s | llc -march=x86 &&
-; RUN: llvm-as < %s | llc -march=x86 | grep '\(and\)\|\(test.*\$1\)' | \
+; RUN: llvm-as < %s | llc -march=x86 | grep {\\(and\\)\\|\\(test.*\\\$1\\)} | \
; RUN: wc -l | grep 6
define i1 @test1(i32 %X) zext {
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 -mattr=+sse2 &&
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 -mattr=+sse2 | grep unpcklps | wc -l | grep 1 &&
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 -mattr=+sse2 | grep unpckhps | wc -l | grep 1 &&
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 -mattr=+sse2 | not grep 'sub.*esp'
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 -mattr=+sse2 | \
+; RUN: grep unpcklps | wc -l | grep 1
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 -mattr=+sse2 | \
+; RUN: grep unpckhps | wc -l | grep 1
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 -mattr=+sse2 | \
+; RUN: not grep {sub.*esp}
void %test(<4 x float>* %res, <4 x float>* %A, <4 x float>* %B) {
%tmp = load <4 x float>* %B ; <<4 x float>> [#uses=2]
-// RUN: tblgen %s | grep 'dag d = (X Y)' &&
-// RUN: tblgen %s | grep 'dag e = (Y X)'
+// RUN: tblgen %s | grep {dag d = (X Y)}
+// RUN: tblgen %s | grep {dag e = (Y X)}
def X;
class yclass;
-// RUN: tblgen %s | grep 'dag d = (X 13)'
+// RUN: tblgen %s | grep {dag d = (X 13)}
def X;
class C<int N> {
; SetCC on boolean values was not implemented!
-; RUN: llvm-upgrade < %s | llvm-as | opt -constprop -die | llvm-dis | not grep 'set'
+; RUN: llvm-upgrade < %s | llvm-as | opt -constprop -die | llvm-dis | \
+; RUN: not grep set
bool "test1"() {
%A = setle bool true, false
; Ensure constant propogation of logical instructions is working correctly.
-; RUN: llvm-upgrade < %s | llvm-as | opt -constprop -die | llvm-dis | not egrep 'and|or|xor'
+; RUN: llvm-upgrade < %s | llvm-as | opt -constprop -die | llvm-dis | \
+; RUN: not egrep {and|or|xor}
int "test1"() { %R = and int 4,1234 ret int %R }
; The induction variable canonicalization pass shouldn't leave dead
; instructions laying around!
;
-; RUN: llvm-upgrade < %s | llvm-as | opt -indvars | llvm-dis | not grep '#uses=0'
+; RUN: llvm-upgrade < %s | llvm-as | opt -indvars | llvm-dis | \
+; RUN: not grep {#uses=0}
int %mul(int %x, int %y) {
entry:
; Check that the index of 'P[outer]' is pulled out of the loop.
-; RUN: llvm-upgrade < %s | llvm-as | opt -loop-reduce | llvm-dis | not grep 'getelementptr.*%outer.*%INDVAR'
+; RUN: llvm-upgrade < %s | llvm-as | opt -loop-reduce | llvm-dis | \
+; RUN: not grep {getelementptr.*%outer.*%INDVAR}
declare bool %pred()
declare int %foo()
; Check that the index of 'P[outer]' is pulled out of the loop.
-; RUN: llvm-upgrade < %s | llvm-as | opt -loop-reduce | llvm-dis | not grep 'getelementptr.*%outer.*%INDVAR'
+; RUN: llvm-upgrade < %s | llvm-as | opt -loop-reduce | llvm-dis | \
+; RUN: not grep {getelementptr.*%outer.*%INDVAR}
declare bool %pred()
; Check that variable strides are reduced to adds instead of multiplies.
-; RUN: llvm-upgrade < %s | llvm-as | opt -loop-reduce | llvm-dis | not grep 'mul'
+; RUN: llvm-upgrade < %s | llvm-as | opt -loop-reduce | llvm-dis | not grep mul
declare bool %pred(int)
; Simple sanity check testcase. Both alloca's should be eliminated.
-; RUN: llvm-upgrade < %s | llvm-as | opt -mem2reg | llvm-dis | not grep 'alloca'
+; RUN: llvm-upgrade < %s | llvm-as | opt -mem2reg | llvm-dis | not grep alloca
implementation
-; RUN: llvm-upgrade < %s | llvm-as | opt -reassociate -dce | llvm-dis | not grep '\(and\|sub\)'
+; RUN: llvm-upgrade < %s | llvm-as | opt -reassociate -dce | llvm-dis | \
+; RUN: not grep {\\(and\\|sub\\)}
int %test1(int %a, int %b) {
%tmp.2 = and int %b, %a
; Test that the ToAsciiOptimizer works correctly
-; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | not grep 'call.*%ffs'
+; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | \
+; RUN: not grep {call.*%ffs}
declare int %ffs(int)
declare int %ffsl(int)
; Test that the FPrintFOptimizer works correctly
-; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | not grep 'call.*fprintf'
+; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | \
+; RUN: not grep {call.*fprintf}
;
%struct._IO_FILE = type { int, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, %struct._IO_marker*, %struct._IO_FILE*, int, int, int, ushort, sbyte, [1 x sbyte], sbyte*, long, sbyte*, sbyte*, int, [52 x sbyte] }
; Test that the StrCatOptimizer works correctly
-; RUN: llvm-upgrade < %s | llvm-as | opt -constprop -simplify-libcalls -disable-output &&
-; RUN: llvm-upgrade < %s | llvm-as | opt -constprop -simplify-libcalls | llvm-dis | not grep 'call.*llvm.memcpy.i32'
+; RUN: llvm-upgrade < %s | llvm-as | opt -constprop -simplify-libcalls | \
+; RUN: llvm-dis | not grep {call.*llvm.memcpy.i32}
declare void %llvm.memcpy.i32(sbyte*,sbyte*,uint,uint)
%h = constant [2 x sbyte] c"h\00"
; Test that the StrCatOptimizer works correctly
-; RUN: llvm-upgrade < %s | llvm-as | opt -constprop -simplify-libcalls -disable-output &&
-; RUN: llvm-upgrade < %s | llvm-as | opt -constprop -simplify-libcalls | llvm-dis | not grep 'call.*llvm.memmove.i32'
+; RUN: llvm-upgrade < %s | llvm-as | opt -constprop -simplify-libcalls | \
+; RUN: llvm-dis | not grep {call.*llvm.memmove.i32}
declare void %llvm.memmove.i32(sbyte*,sbyte*,uint,uint)
%h = constant [2 x sbyte] c"h\00"
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | grep putchar &&
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | not grep 'call.*printf'
+; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | grep putchar
+; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | \
+; RUN: not grep {call.*printf}
@str = internal constant [13 x i8] c"hello world\0A\00" ; <[13 x i8]*> [#uses=1]
@str1 = internal constant [2 x i8] c"h\00" ; <[2 x i8]*> [#uses=1]
; Test that the PutsCatOptimizer works correctly
-; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | not grep 'call.*fputs'
+; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | \
+; RUN: not grep {call.*fputs}
;
%struct._IO_FILE = type { int, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, %struct._IO_marker*, %struct._IO_FILE*, int, int, int, ushort, sbyte, [1 x sbyte], sbyte*, long, sbyte*, sbyte*, int, [52 x sbyte] }
%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, int }
; Test that the SPrintFOptimizer works correctly
-; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls -disable-output &&
-; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | not grep 'call.*sprintf'
+; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | \
+; RUN: not grep {call.*sprintf}
declare int %sprintf(sbyte*,sbyte*,...)
declare int %puts(sbyte*)
; Test that the StrCatOptimizer works correctly
-; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | not grep 'call.*strcat'
+; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | \
+; RUN: not grep {call.*strcat}
declare sbyte* %strcat(sbyte*,sbyte*)
declare int %puts(sbyte*)
; Test that the StrChrOptimizer works correctly
-; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | not grep 'call.*%strchr'
+; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | \
+; RUN: not grep {call.*%strchr}
declare sbyte* %strchr(sbyte*,int)
declare int %puts(sbyte*)
; Test that the StrCmpOptimizer works correctly
-; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | not grep 'call.*strcmp'
+; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | \
+; RUN: not grep {call.*strcmp}
declare int %strcmp(sbyte*,sbyte*)
declare int %puts(sbyte*)
; Test that the StrCpyOptimizer works correctly
-; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | not grep 'call.*strcpy'
+; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | \
+; RUN: not grep {call.*strcpy}
declare sbyte* %strcpy(sbyte*,sbyte*)
declare int %puts(sbyte*)
; Test that the StrCatOptimizer works correctly
; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | \
-; RUN: not grep 'call.*strlen'
+; RUN: not grep {call.*strlen}
target datalayout = "e-p:32:32"
; Test that the StrNCmpOptimizer works correctly
-; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | not grep 'call.*strncmp'
+; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | \
+; RUN: not grep {call.*strncmp}
declare int %strncmp(sbyte*,sbyte*,int)
declare int %puts(sbyte*)
; Test that the ToAsciiOptimizer works correctly
-; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | not grep 'call.*toascii'
+; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | \
+; RUN: not grep {call.*toascii}
declare int %toascii(int)
; Test that the memcmpOptimizer works correctly
-; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | not grep 'call.*memcmp' &&
+; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | \
+; RUN: not grep {call.*memcmp}
; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls -disable-output
declare int %memcmp(sbyte*,sbyte*,int)