-; RUN: llvm-as < %s | opt -dse | llvm-dis | grep 'store int 0'
+; RUN: llvm-upgrade < %s | llvm-as | opt -dse | llvm-dis | grep 'store int 0'
void %test({int,int }* %P) {
%Q = getelementptr {int,int}* %P, int 1
; Check to make sure that Value Numbering doesn't merge casts of different
; flavors.
-; RUN: llvm-as < %s | opt -load-vn -gcse | llvm-dis | grep '[sz]ext' | wc -l | grep 2
+; RUN: llvm-upgrade < %s | llvm-as | opt -load-vn -gcse | llvm-dis | \
+; RUN: grep '[sz]ext' | wc -l | grep 2
declare void %external(int)
; Make sure we don't get an assertion failure, even though this is a parse
; error
-; RUN: llvm-as < %s 2>&1 | grep 'No arguments'
+; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f 2>&1 | grep 'No arguments'
%ty = type void (int)
%d_reduction_0_dparser_gram = global { int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)*, int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)** } { int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)* null, int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)** null }
+implementation
-; RUN: llvm-as < %s > /dev/null
+; RUN: llvm-upgrade < %s | llvm-as > /dev/null
void %t() {
entry:
ret void
; Check to see that the verifier does not take an outrageous amount of time on
; this testcase.
-; RUN: llvm-as < %s -o /dev/null -f
+; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
"complex long double" = type { double, double }
"struct.std::dcomplex" = type { "complex long double" }
; Basic test for bugpoint.
-; RUN: bugpoint %s -domset -idom -domset -bugpoint-crashcalls -domset -idom -domset
+; RUN: llvm-upgrade < %s > %t1.ll
+; RUN: bugpoint %t1.ll -domset -idom -domset -bugpoint-crashcalls \
+; RUN: -domset -idom -domset
int %test() {
call int %test()
; Test that bugpoint can narrow down the testcase to the important function
;
-; RUN: bugpoint %s -bugpoint-crashcalls
+; RUN: llvm-upgrade < %s > %t1.ll
+; RUN: bugpoint %t1.ll -bugpoint-crashcalls
int %foo() { ret int 1 }
-; RUN: PATH=/usr/bin:/bin/:${PATH}
-; RUN: export PATH
-; RUN: bugpoint %s -dce -bugpoint-deletecalls -simplifycfg
+; RUN: llvm-upgrade < %s > %t1.ll
+; RUN: bugpoint %t1.ll -dce -bugpoint-deletecalls -simplifycfg
%.LC0 = internal global [13 x sbyte] c"Hello World\0A\00"
-; RUN: bugpoint %s -bugpoint-crashcalls
+; RUN: llvm-upgrade < %s > %t1.ll
+; RUN: bugpoint %t1.ll -bugpoint-crashcalls
; Test to make sure that arguments are removed from the function if they are unnecessary.
; This test ensures that we get a bitcast constant expression in and out,
; not a sitofp constant expression.
-; RUN: llvm-as < %s | llvm-dis | grep 'bitcast ('
+; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | grep 'bitcast ('
%G = external global int
float %tryit(int %A) {
-; RUN: llvm-as < %s | llc -march=arm
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm
void %frame_dummy() {
entry:
-; RUN: llvm-as < %s | llc -march=c &&
-; RUN: llvm-as < %s | llc -march=c | grep '__BITCAST' | wc -l | grep 14
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=c &&
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=c | \
+; RUN: grep '__BITCAST' | wc -l | grep 14
int %test1(float %F) {
%X = bitcast float %F to int
-; RUN: llvm-as -f %s -o - | llc
+; RUN: llvm-upgrade < %s | llvm-as | llc
; Compiling this file produces:
; Sparc.cpp:91: failed assertion `(offset - OFFSET) % getStackFrameSizeAlignment() == 0'
-; RUN: llvm-as < %s | llc -march=x86
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86
; PR1049
target datalayout = "e-p:32:32"
target endian = little
-; RUN: llvm-as < %s | llc -march=ppc64 &&
-; RUN: llvm-as < %s | llc -march=ppc32 &&
-; RUN: llvm-as < %s | llc
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc64 &&
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 &&
+; RUN: llvm-upgrade < %s | llvm-as | llc
void %bitap() {
entry:
-; RUN: llvm-as < %s | llc -march=x86 -x86-asm-syntax=intel
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 -x86-asm-syntax=intel
; PR1061
target datalayout = "e-p:32:32"
-; RUN: llvm-as < %s | llc &&
-; RUN: llvm-as < %s | llc -march=x86 &&
-; RUN: llvm-as < %s | llc -march=x86-64
+; RUN: llvm-upgrade < %s | llvm-as | llc &&
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 &&
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86-64
; PR1033
long %test1(double %t) {
-; RUN: llvm-as < %s | llc -march=x86 |grep "foos+5" &&
-; RUN: llvm-as < %s | llc -march=x86 |grep "foos+1" &&
-; RUN: llvm-as < %s | llc -march=x86 |grep "foos+9" &&
-; RUN: llvm-as < %s | llc -march=x86 |grep "bara+19" &&
-; RUN: llvm-as < %s | llc -march=x86 |grep "bara+4"
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 |grep "foos+5" &&
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 |grep "foos+1" &&
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 |grep "foos+9" &&
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 |grep "bara+19" &&
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 |grep "bara+4"
; make sure we compute the correct offset for a packed structure
-; RUN: llvm-as< %s | opt -scalarrepl -instcombine | llc -march=x86 -mcpu=yonah &&
-; RUN: llvm-as< %s | opt -scalarrepl -instcombine | llc -march=x86 -mcpu=yonah | not grep sub.*esp
+; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl -instcombine | \
+; RUN: llc -march=x86 -mcpu=yonah &&
+; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl -instcombine | \
+; RUN: llc -march=x86 -mcpu=yonah | not grep sub.*esp
; This checks that various insert/extract idiom work without going to the
; stack.
-; RUN: llvm-as < %s | llc
+; RUN: llvm-upgrade < %s | llvm-as | llc
; PR1029
target datalayout = "e-p:64:64"
-;; RUN: llvm-as < %s | llc
+;; RUN: llvm-upgrade < %s | llvm-as | llc
;; Debugger type declarations
%llvm.dbg.anchor.type = type { uint, uint }
; This fails because the linker renames the external symbol not the internal
; one...
-; RUN: echo "implementation internal int %foo() { ret int 7 }" | llvm-as > %t.1.bc
-; RUN: llvm-as < %s > %t.2.bc
+; RUN: echo "implementation internal int %foo() { ret int 7 }" | llvm-upgrade |\
+; RUN: llvm-as > %t.1.bc
+; RUN: llvm-upgrade < %s | llvm-as -o %t.2.bc -f
; RUN: llvm-link %t.[12].bc | llvm-dis | grep '%foo()' | grep -v internal
implementation
-; RUN: echo "%X = linkonce global int 5 implementation linkonce int %foo() { ret int 7 }" | llvm-as > %t.1.bc
-; RUN: llvm-as < %s > %t.2.bc
+; RUN: echo "%X = linkonce global int 5 implementation linkonce int %foo() { ret int 7 }" | llvm-upgrade | llvm-as > %t.1.bc
+; RUN: llvm-upgrade < %s | llvm-as -o %t.2.bc -f
; RUN: llvm-link %t.[12].bc
%X = external global int
; This fails because the linker renames the non-opaque type not the opaque
; one...
-; RUN: echo "implementation linkonce void %foo() { ret void } " | llvm-as > %t.2.bc
-; RUN: llvm-as < %s > %t.1.bc
+; RUN: echo "implementation linkonce void %foo() { ret void } " | llvm-upgrade|\
+; RUN: llvm-as -o %t.2.bc -f
+; RUN: llvm-upgrade < %s | llvm-as -o %t.1.bc -f
; RUN: llvm-link %t.[12].bc | llvm-dis | grep foo | grep linkonce
declare void %foo()
-; RUN: llvm-as < %s > %t.out1.bc
-; RUN: echo "%S = type int" | llvm-as > %t.out2.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.out1.bc
+; RUN: echo "%S = type int" | llvm-upgrade | llvm-as > %t.out2.bc
; RUN: llvm-link %t.out[21].bc
%S = type opaque
-; RUN: llvm-as < %s > %t.out1.bc
-; RUN: echo "%S = type int" | llvm-as > %t.out2.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.out1.bc
+; RUN: echo "%S = type int" | llvm-upgrade | llvm-as > %t.out2.bc
; RUN: llvm-link %t.out[21].bc
%S = type opaque
-; RUN: llvm-as < %s > %t.out1.bc
-; RUN: echo "%S = type int" | llvm-as > %t.out2.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.out1.bc
+; RUN: echo "%S = type int" | llvm-upgrade | llvm-as > %t.out2.bc
; RUN: llvm-link %t.out[21].bc
%S = type opaque
-; RUN: llvm-as -f < %s > %t1.bc
-; RUN: llvm-as -f < `dirname %s`/2004-05-07-TypeResolution2.ll > %t2.bc
+; RUN: llvm-upgrade < %s | llvm-as -f -o %t1.bc
+; RUN: llvm-upgrade < `dirname %s`/2004-05-07-TypeResolution2.ll | \
+; RUN: llvm-as -o %t2.bc -f
; RUN: llvm-link -f -o %t3.bc %t1.bc %t2.bc
target endian = little
; Test that appending linkage works correctly.
-; RUN: echo "%X = appending global [1x int] [int 8]" | llvm-as > %t.2.bc
-; RUN: llvm-as < %s > %t.1.bc
+; RUN: echo "%X = appending global [1x int] [int 8]" | llvm-upgrade | \
+; RUN: llvm-as > %t.2.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.1.bc
; RUN: llvm-link %t.[12].bc | llvm-dis | grep 7 | grep 4 | grep 8
%X = appending global [2 x int] [int 7, int 4]
-; RUN: llvm-as < %s > %t.bc
-; RUN: llvm-as < `dirname %s`/testlink2.ll > %t2.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.bc
+; RUN: llvm-upgrade < `dirname %s`/testlink2.ll | llvm-as > %t2.bc
; RUN: llvm-link %t.bc %t2.bc
%MyVar = external global int
-; RUN: llvm-as < %s | opt -adce
+; RUN: llvm-upgrade < %s | llvm-as | opt -adce
void "test"()
begin
-; RUN: llvm-as < %s | opt -indvars -disable-output
+; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -disable-output
target datalayout = "e-p:32:32"
target endian = little
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep zext
+; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep zext
; Never merge these two conversions, even though it's possible: this is
; significantly more expensive than the two conversions on some targets
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep 'icmp' | wc -l | grep 1
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep 'icmp ugt' | wc -l | grep 1
+; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: grep 'icmp' | wc -l | grep 1
+; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: grep 'icmp ugt' | wc -l | grep 1
+;
; ModuleID = 'bugpoint-tooptimize.bc'
target datalayout = "e-p:32:32"
target endian = little
; For PR1065. This causes an assertion in instcombine if a select with two cmp
; operands is encountered.
-; RUN: llvm-as < %s | opt -instcombine -disable-output
+; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output
; ModuleID = 'PR1065.bc'
target datalayout = "e-p:32:32"
target endian = little
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep shl
+; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep shl
bool %test(int %X, ubyte %A) {
%B = lshr int %X, ubyte %A
; LevelRaise should eliminate all cast instructions from this testcase.
;
; XFAIL: *
-; RUN: llvm-as < %s | opt -raise | llvm-dis | notcast
+; RUN: llvm-upgrade < %s | llvm-as | opt -raise | llvm-dis | notcast
%Hash = type { { uint, sbyte *, \2 } * *, int (uint) *, int } *
%hash = type { { uint, sbyte *, \2 } * *, int (uint) *, int }
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | grep 'ret bool false'
+; RUN: llvm-upgrade < %s | llvm-as | opt -sccp | llvm-dis | \
+; RUN: grep 'ret bool false'
bool %foo() {
%X = and bool false, undef
-; RUN: llvm-as < %s | opt -scalarrepl -disable-output
+; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl -disable-output
; PR1045
target datalayout = "e-p:32:32"
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis
+; RUN: llvm-upgrade < %s | llvm-as | opt -simplifycfg | llvm-dis
; ModuleID = 'bugpoint-tooptimize.bc'
target datalayout = "e-p:32:32"
target endian = little