mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-02 08:26:29 +00:00
Remove llvm-upgrade
llvm-svn: 47119
This commit is contained in:
parent
8352abdd98
commit
df7da98f55
@ -1,4 +1,4 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
|
||||
; This testcase failed due to a bad assertion in SymbolTable.cpp, removed in
|
||||
; the 1.20 revision. Basically the symbol table assumed that if there was an
|
||||
@ -6,8 +6,6 @@
|
||||
; void(opaque)* ], that there should have also been named types by now. This
|
||||
; was obviously not the case here, and this is valid. Assertion disabled.
|
||||
|
||||
declare void "foo"(%bb)
|
||||
%bb = type int
|
||||
|
||||
implementation
|
||||
%bb = type i32
|
||||
|
||||
declare void @foo(i32)
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
|
||||
; This testcase used to fail due to a lack of this diff in Value.cpp:
|
||||
; diff -r1.16 Value.cpp
|
||||
@ -16,13 +16,8 @@
|
||||
; This was causing an assertion failure, due to the "foo" Method object never
|
||||
; releasing it's reference to the opaque %bb value.
|
||||
;
|
||||
declare void "foo"(%bb)
|
||||
|
||||
%exception_descriptor = type opaque
|
||||
|
||||
%bb = type int
|
||||
|
||||
%exception_descriptor = type int
|
||||
|
||||
implementation
|
||||
%bb = type i32
|
||||
%exception_descriptor = type i32
|
||||
|
||||
declare void @foo(i32)
|
||||
|
@ -1,10 +1,3 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
|
||||
%Hosp = type { int, int, int, { \2 *, { int, int, int, { [4 x \3], \2, \5, \6,
|
||||
int, int } * } *, \2 * }, { \2 *, { int, int, int, { [4 x \3], \2, \5, \6, int,
|
||||
int } * } *, \2 * }, { \2 *, { int, int, int, { [4 x \3], \2, \5, \6, int, int
|
||||
} * } *, \2 * }, { \2 *, { int, int, int, { [4 x \3], \2, \5, \6, int, int } * }
|
||||
*, \2 * } }
|
||||
|
||||
implementation
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
|
||||
%Hosp = type { i32, i32, i32, { \2*, { i32, i32, i32, { [4 x \3], \2, \5, %Hosp, i32, i32 }* }*, \2* }, { \2*, { i32, i32, i32, { [4 x \3], \2, \5, %Hosp, i32, i32 }* }*, \2* }, { \2*, { i32, i32, i32, { [4 x \3], \2, \5, %Hosp, i32, i32 }* }*, \2* }, { \2*, { i32, i32, i32, { [4 x \3], \2, \5, %Hosp, i32, i32 }* }*, \2* } }
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
|
||||
; Method arguments were being checked for collisions at the global scope before
|
||||
; the method object was created by the parser. Because of this, false
|
||||
@ -10,10 +10,6 @@
|
||||
; Fixed by delaying binding of variable names until _after_ the method symtab is
|
||||
; created.
|
||||
;
|
||||
@X = global i32 4 ; <i32*> [#uses=0]
|
||||
|
||||
%X = global int 4
|
||||
|
||||
declare int "xxx"(int * %X)
|
||||
|
||||
implementation
|
||||
|
||||
declare i32 @xxx(i32*)
|
||||
|
@ -1,18 +1,12 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
|
||||
; Another name collision problem. Here the problem was that if a forward
|
||||
; declaration for a method was found, that this would cause spurious conflicts
|
||||
; to be detected between locals and globals.
|
||||
;
|
||||
%Var = uninitialized global int
|
||||
@Var = external global i32 ; <i32*> [#uses=0]
|
||||
|
||||
declare void "foo"()
|
||||
|
||||
implementation
|
||||
|
||||
void "foo"()
|
||||
begin
|
||||
%Var = alloca int ; Conflict with global var
|
||||
define void @foo() {
|
||||
%Var = alloca i32 ; <i32*> [#uses=0]
|
||||
ret void
|
||||
end
|
||||
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
|
||||
type { { \2 *, \4 ** },
|
||||
{ \2 *, \4 ** }
|
||||
}
|
||||
|
||||
implementation
|
||||
|
@ -1,7 +1,5 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
|
||||
%t = type { { \2*, \2 },
|
||||
{ \2*, \2 }
|
||||
}
|
||||
|
||||
implementation
|
||||
|
@ -1,8 +1,3 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
|
||||
%Hosp = type {
|
||||
{ \2 *, { \2, \4 } * },
|
||||
{ \2 *, { \2, \4 } * }
|
||||
}
|
||||
|
||||
implementation
|
||||
%Hosp = type { { \2*, { \2, %Hosp }* }, { \2*, { \2, %Hosp }* } }
|
||||
|
@ -5,15 +5,12 @@
|
||||
; of the bug that was causing the Olden Health benchmark to output incorrect
|
||||
; results!
|
||||
;
|
||||
; RUN: llvm-upgrade < %s | llvm-as | opt -constprop | llvm-dis > %t.1
|
||||
; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | llvm-as | opt -constprop | \
|
||||
; RUN: llvm-as < %s | opt -constprop | llvm-dis > %t.1
|
||||
; RUN: llvm-as < %s | llvm-dis | llvm-as | opt -constprop | \
|
||||
; RUN: llvm-dis > %t.2
|
||||
; RUN: diff %t.1 %t.2
|
||||
|
||||
implementation
|
||||
|
||||
double "test"()
|
||||
begin
|
||||
%tmp = mul double 72.0e100, 0x427f4000
|
||||
define double @test() {
|
||||
%tmp = mul double 7.200000e+101, 0x427F4000 ; <double> [#uses=1]
|
||||
ret double %tmp
|
||||
end
|
||||
}
|
||||
|
@ -1,11 +1,9 @@
|
||||
; The output formater prints out 1.0e100 as Inf!
|
||||
;
|
||||
; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | llvm-as | llvm-dis
|
||||
; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis
|
||||
|
||||
implementation
|
||||
|
||||
float "test"()
|
||||
begin
|
||||
%tmp = mul float 0x7FF0000000000000, 1.0e1
|
||||
define float @test() {
|
||||
%tmp = mul float 0x7FF0000000000000, 1.000000e+01 ; <float> [#uses=1]
|
||||
ret float %tmp
|
||||
end
|
||||
}
|
||||
|
||||
|
@ -4,17 +4,15 @@
|
||||
; Check by running globaldce, which will remove the constant if there are
|
||||
; no references to it!
|
||||
;
|
||||
; RUN: llvm-upgrade < %s | llvm-as | opt -globaldce | llvm-dis | \
|
||||
; RUN: llvm-as < %s | opt -globaldce | llvm-dis | \
|
||||
; RUN: not grep constant
|
||||
;
|
||||
|
||||
%v1 = internal constant int 5
|
||||
@v1 = internal constant i32 5
|
||||
|
||||
implementation
|
||||
|
||||
int "createtask"() begin
|
||||
%v1 = alloca int ;; Alloca should have one use!
|
||||
%reg112 = load int* %v1 ;; This load should not use the global!
|
||||
ret int %reg112
|
||||
end
|
||||
define i32 @createtask() {
|
||||
%v1 = alloca i32 ;; Alloca should have one use!
|
||||
%reg112 = load i32* %v1 ;; This load should not use the global!
|
||||
ret i32 %reg112
|
||||
}
|
||||
|
||||
|
@ -1,13 +1,10 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
; It looks like the assembler is not forward resolving the function declaraion
|
||||
; correctly.
|
||||
|
||||
void "test"()
|
||||
begin
|
||||
call void %foo()
|
||||
define void @test() {
|
||||
call void @foo( )
|
||||
ret void
|
||||
end
|
||||
|
||||
declare void "foo"()
|
||||
}
|
||||
|
||||
declare void @foo()
|
||||
|
@ -1,69 +1,67 @@
|
||||
; This file takes about 48 __MINUTES__ to assemble using as. This is WAY too
|
||||
; long. The type resolution code needs to be sped up a lot.
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
; END.
|
||||
|
||||
%ALL_INTERSECTIONS_METHOD = type int (%OBJECT*, %RAY*, %ISTACK*)*
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
%ALL_INTERSECTIONS_METHOD = type i32 (%OBJECT*, %RAY*, %ISTACK*)*
|
||||
%BBOX = type { %BBOX_VECT, %BBOX_VECT }
|
||||
%BBOX_TREE = type { short, short, %BBOX, %BBOX_TREE** }
|
||||
%BBOX_TREE = type { i16, i16, %BBOX, %BBOX_TREE** }
|
||||
%BBOX_VECT = type [3 x float]
|
||||
%BLEND_MAP = type { short, short, short, int, %BLEND_MAP_ENTRY* }
|
||||
%BLEND_MAP_ENTRY = type { float, ubyte, { %COLOUR, %PIGMENT*, %TNORMAL*, %TEXTURE*, %UV_VECT } }
|
||||
%CAMERA = type { %VECTOR, %VECTOR, %VECTOR, %VECTOR, %VECTOR, %VECTOR, double, double, int, double, double, int, double, %TNORMAL* }
|
||||
%BLEND_MAP = type { i16, i16, i16, i32, %BLEND_MAP_ENTRY* }
|
||||
%BLEND_MAP_ENTRY = type { float, i8, { %COLOUR, %PIGMENT*, %TNORMAL*, %TEXTURE*, %UV_VECT } }
|
||||
%CAMERA = type { %VECTOR, %VECTOR, %VECTOR, %VECTOR, %VECTOR, %VECTOR, double, double, i32, double, double, i32, double, %TNORMAL* }
|
||||
%COLOUR = type [5 x float]
|
||||
%COPY_METHOD = type sbyte* (%OBJECT*)*
|
||||
%COUNTER = type { uint, uint }
|
||||
%DENSITY_FILE = type { int, %DENSITY_FILE_DATA* }
|
||||
%DENSITY_FILE_DATA = type { int, sbyte*, int, int, int, ubyte*** }
|
||||
%COPY_METHOD = type i8* (%OBJECT*)*
|
||||
%COUNTER = type { i32, i32 }
|
||||
%DENSITY_FILE = type { i32, %DENSITY_FILE_DATA* }
|
||||
%DENSITY_FILE_DATA = type { i32, i8*, i32, i32, i32, i8*** }
|
||||
%DESTROY_METHOD = type void (%OBJECT*)*
|
||||
%FILE = type { int, ubyte*, ubyte*, ubyte, ubyte, uint, uint, uint }
|
||||
%FILE_HANDLE = type { sbyte*, int, int, int, int, sbyte*, %FILE*, int, int (%FILE_HANDLE*, sbyte*, int*, int*, int, int)*, void (%FILE_HANDLE*, %COLOUR*, int)*, int (%FILE_HANDLE*, %COLOUR*, int*)*, void (%IMAGE*, sbyte*)*, void (%FILE_HANDLE*)* }
|
||||
%FILE = type { i32, i8*, i8*, i8, i8, i32, i32, i32 }
|
||||
%FILE_HANDLE = type { i8*, i32, i32, i32, i32, i8*, %FILE*, i32, i32 (%FILE_HANDLE*, i8*, i32*, i32*, i32, i32)*, void (%FILE_HANDLE*, %COLOUR*, i32)*, i32 (%FILE_HANDLE*, %COLOUR*, i32*)*, void (%IMAGE*, i8*)*, void (%FILE_HANDLE*)* }
|
||||
%FINISH = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, %BBOX_VECT, %BBOX_VECT }
|
||||
%FOG = type { int, double, double, double, %COLOUR, %VECTOR, %TURB*, float, %FOG* }
|
||||
%FRAME = type { %CAMERA*, int, int, int, %LIGHT_SOURCE*, %OBJECT*, double, double, %COLOUR, %COLOUR, %COLOUR, %IMEDIA*, %FOG*, %RAINBOW*, %SKYSPHERE* }
|
||||
%FRAMESEQ = type { int, double, int, int, double, int, int, double, int, double, int, double, uint, uint }
|
||||
%IMAGE = type { int, int, int, int, int, short, short, %VECTOR, float, float, int, int, short, %IMAGE_COLOUR*, { %IMAGE_LINE*, ubyte** } }
|
||||
%IMAGE_COLOUR = type { ushort, ushort, ushort, ushort, ushort }
|
||||
%IMAGE_LINE = type { ubyte*, ubyte*, ubyte*, ubyte* }
|
||||
%IMEDIA = type { int, int, int, int, int, double, double, int, int, int, int, %COLOUR, %COLOUR, %COLOUR, %COLOUR, double, double, double, double*, %PIGMENT*, %IMEDIA* }
|
||||
%INSIDE_METHOD = type int (double*, %OBJECT*)*
|
||||
%INTERIOR = type { int, int, float, float, float, float, float, %IMEDIA* }
|
||||
%INTERSECTION = type { double, %VECTOR, %VECTOR, %OBJECT*, int, int, double, double, sbyte* }
|
||||
%FOG = type { i32, double, double, double, %COLOUR, %VECTOR, %TURB*, float, %FOG* }
|
||||
%FRAME = type { %CAMERA*, i32, i32, i32, %LIGHT_SOURCE*, %OBJECT*, double, double, %COLOUR, %COLOUR, %COLOUR, %IMEDIA*, %FOG*, %RAINBOW*, %SKYSPHERE* }
|
||||
%FRAMESEQ = type { i32, double, i32, i32, double, i32, i32, double, i32, double, i32, double, i32, i32 }
|
||||
%IMAGE = type { i32, i32, i32, i32, i32, i16, i16, %VECTOR, float, float, i32, i32, i16, %IMAGE_COLOUR*, { %IMAGE_LINE*, i8** } }
|
||||
%IMAGE_COLOUR = type { i16, i16, i16, i16, i16 }
|
||||
%IMAGE_LINE = type { i8*, i8*, i8*, i8* }
|
||||
%IMEDIA = type { i32, i32, i32, i32, i32, double, double, i32, i32, i32, i32, %COLOUR, %COLOUR, %COLOUR, %COLOUR, double, double, double, double*, %PIGMENT*, %IMEDIA* }
|
||||
%INSIDE_METHOD = type i32 (double*, %OBJECT*)*
|
||||
%INTERIOR = type { i32, i32, float, float, float, float, float, %IMEDIA* }
|
||||
%INTERSECTION = type { double, %VECTOR, %VECTOR, %OBJECT*, i32, i32, double, double, i8* }
|
||||
%INVERT_METHOD = type void (%OBJECT*)*
|
||||
%ISTACK = type { %ISTACK*, %INTERSECTION*, uint }
|
||||
%LIGHT_SOURCE = type { %METHODS*, int, %OBJECT*, %TEXTURE*, %INTERIOR*, %OBJECT*, %OBJECT*, %BBOX, uint, %OBJECT*, %COLOUR, %VECTOR, %VECTOR, %VECTOR, %VECTOR, %VECTOR, double, double, double, double, double, %LIGHT_SOURCE*, ubyte, ubyte, ubyte, ubyte, int, int, int, int, int, %COLOUR**, %OBJECT*, [6 x %PROJECT_TREE_NODE*] }
|
||||
%ISTACK = type { %ISTACK*, %INTERSECTION*, i32 }
|
||||
%LIGHT_SOURCE = type { %METHODS*, i32, %OBJECT*, %TEXTURE*, %INTERIOR*, %OBJECT*, %OBJECT*, %BBOX, i32, %OBJECT*, %COLOUR, %VECTOR, %VECTOR, %VECTOR, %VECTOR, %VECTOR, double, double, double, double, double, %LIGHT_SOURCE*, i8, i8, i8, i8, i32, i32, i32, i32, i32, %COLOUR**, %OBJECT*, [6 x %PROJECT_TREE_NODE*] }
|
||||
%MATRIX = type [4 x %VECTOR_4D]
|
||||
%METHODS = type { %ALL_INTERSECTIONS_METHOD, %INSIDE_METHOD, %NORMAL_METHOD, %COPY_METHOD, %ROTATE_METHOD, %ROTATE_METHOD, %ROTATE_METHOD, %TRANSFORM_METHOD, %DESTROY_METHOD, %DESTROY_METHOD }
|
||||
%NORMAL_METHOD = type void (double*, %OBJECT*, %INTERSECTION*)*
|
||||
%OBJECT = type { %METHODS*, int, %OBJECT*, %TEXTURE*, %INTERIOR*, %OBJECT*, %OBJECT*, %BBOX, uint }
|
||||
%Opts = type { int, uint, sbyte, sbyte, sbyte, int, [150 x sbyte], [150 x sbyte], [150 x sbyte], [150 x sbyte], [150 x sbyte], double, double, uint, int, double, double, int, [25 x sbyte*], int, int, int, double, double, int, int, double, double, double, uint, int, int, int, int, %FRAMESEQ, double, int, double, double, double, double, double, int, int, int, int, int, int, int, int, int, int, int, int, int, [150 x sbyte], %SHELLDATA*, [150 x sbyte], int, int }
|
||||
%PIGMENT = type { ushort, ushort, ushort, int, float, float, float, %WARP*, %TPATTERN*, %BLEND_MAP*, { %DENSITY_FILE*, %IMAGE*, %VECTOR, float, short, short, short, { float, %VECTOR }, %complex.float }, %COLOUR }
|
||||
%PRIORITY_QUEUE = type { uint, uint, %QELEM* }
|
||||
%PROJECT = type { int, int, int, int }
|
||||
%PROJECT_QUEUE = type { uint, uint, %PROJECT_TREE_NODE** }
|
||||
%PROJECT_TREE_NODE = type { ushort, %BBOX_TREE*, %PROJECT, ushort, %PROJECT_TREE_NODE** }
|
||||
%OBJECT = type { %METHODS*, i32, %OBJECT*, %TEXTURE*, %INTERIOR*, %OBJECT*, %OBJECT*, %BBOX, i32 }
|
||||
%Opts = type { i32, i32, i8, i8, i8, i32, [150 x i8], [150 x i8], [150 x i8], [150 x i8], [150 x i8], double, double, i32, i32, double, double, i32, [25 x i8*], i32, i32, i32, double, double, i32, i32, double, double, double, i32, i32, i32, i32, i32, %FRAMESEQ, double, i32, double, double, double, double, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [150 x i8], %SHELLDATA*, [150 x i8], i32, i32 }
|
||||
%PIGMENT = type { i16, i16, i16, i32, float, float, float, %WARP*, %TPATTERN*, %BLEND_MAP*, { %DENSITY_FILE*, %IMAGE*, %VECTOR, float, i16, i16, i16, { float, %VECTOR }, %complex.float }, %COLOUR }
|
||||
%PRIORITY_QUEUE = type { i32, i32, %QELEM* }
|
||||
%PROJECT = type { i32, i32, i32, i32 }
|
||||
%PROJECT_QUEUE = type { i32, i32, %PROJECT_TREE_NODE** }
|
||||
%PROJECT_TREE_NODE = type { i16, %BBOX_TREE*, %PROJECT, i16, %PROJECT_TREE_NODE** }
|
||||
%QELEM = type { double, %BBOX_TREE* }
|
||||
%RAINBOW = type { double, double, double, double, double, double, double, %VECTOR, %VECTOR, %VECTOR, %PIGMENT*, %RAINBOW* }
|
||||
%RAY = type { %VECTOR, %VECTOR, int, [100 x %INTERIOR*] }
|
||||
%RAY = type { %VECTOR, %VECTOR, i32, [100 x %INTERIOR*] }
|
||||
%RAYINFO = type { %VECTOR, %VECTOR, %VECTORI, %VECTORI }
|
||||
%RGB = type [3 x float]
|
||||
%ROTATE_METHOD = type void (%OBJECT*, double*, %TRANSFORM*)*
|
||||
%SCALE_METHOD = type void (%OBJECT*, double*, %TRANSFORM*)*
|
||||
%SHELLDATA = type { int, int, [250 x sbyte] }
|
||||
%SKYSPHERE = type { int, %PIGMENT**, %TRANSFORM* }
|
||||
%SHELLDATA = type { i32, i32, [250 x i8] }
|
||||
%SKYSPHERE = type { i32, %PIGMENT**, %TRANSFORM* }
|
||||
%SNGL_VECT = type [3 x float]
|
||||
%TEXTURE = type { ushort, ushort, ushort, int, float, float, float, %WARP*, %TPATTERN*, %BLEND_MAP*, { %DENSITY_FILE*, %IMAGE*, %VECTOR, float, short, short, short, { float, %VECTOR }, %complex.float }, %TEXTURE*, %PIGMENT*, %TNORMAL*, %FINISH*, %TEXTURE*, int }
|
||||
%TNORMAL = type { ushort, ushort, ushort, int, float, float, float, %WARP*, %TPATTERN*, %BLEND_MAP*, { %DENSITY_FILE*, %IMAGE*, %VECTOR, float, short, short, short, { float, %VECTOR }, %complex.float }, float }
|
||||
%TPATTERN = type { ushort, ushort, ushort, int, float, float, float, %WARP*, %TPATTERN*, %BLEND_MAP*, { %DENSITY_FILE*, %IMAGE*, %VECTOR, float, short, short, short, { float, %VECTOR }, %complex.float } }
|
||||
%TEXTURE = type { i16, i16, i16, i32, float, float, float, %WARP*, %TPATTERN*, %BLEND_MAP*, { %DENSITY_FILE*, %IMAGE*, %VECTOR, float, i16, i16, i16, { float, %VECTOR }, %complex.float }, %TEXTURE*, %PIGMENT*, %TNORMAL*, %FINISH*, %TEXTURE*, i32 }
|
||||
%TNORMAL = type { i16, i16, i16, i32, float, float, float, %WARP*, %TPATTERN*, %BLEND_MAP*, { %DENSITY_FILE*, %IMAGE*, %VECTOR, float, i16, i16, i16, { float, %VECTOR }, %complex.float }, float }
|
||||
%TPATTERN = type { i16, i16, i16, i32, float, float, float, %WARP*, %TPATTERN*, %BLEND_MAP*, { %DENSITY_FILE*, %IMAGE*, %VECTOR, float, i16, i16, i16, { float, %VECTOR }, %complex.float } }
|
||||
%TRANSFORM = type { %MATRIX, %MATRIX }
|
||||
%TRANSFORM_METHOD = type void (%OBJECT*, %TRANSFORM*)*
|
||||
%TRANSLATE_METHOD = type void (%OBJECT*, double*, %TRANSFORM*)*
|
||||
%TURB = type { ushort, %WARP*, %VECTOR, int, float, float }
|
||||
%TURB = type { i16, %WARP*, %VECTOR, i32, float, float }
|
||||
%UV_VECT = type [2 x double]
|
||||
%VECTOR = type [3 x double]
|
||||
%VECTORI = type [3 x int]
|
||||
%VECTORI = type [3 x i32]
|
||||
%VECTOR_4D = type [4 x double]
|
||||
%WARP = type { ushort, %WARP* }
|
||||
%__FILE = type { int, ubyte*, ubyte*, ubyte, ubyte, uint, uint, uint }
|
||||
%_h_val = type { [2 x uint], double }
|
||||
%WARP = type { i16, %WARP* }
|
||||
%__FILE = type { i32, i8*, i8*, i8, i8, i32, i32, i32 }
|
||||
%_h_val = type { [2 x i32], double }
|
||||
%complex.float = type { float, float }
|
||||
|
@ -1,11 +1,9 @@
|
||||
; Test to make sure that the 'internal' tag is not lost!
|
||||
;
|
||||
; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | grep internal
|
||||
; RUN: llvm-as < %s | llvm-dis | grep internal
|
||||
|
||||
declare void %foo()
|
||||
implementation
|
||||
declare void @foo()
|
||||
|
||||
internal void %foo() {
|
||||
define internal void @foo() {
|
||||
ret void
|
||||
}
|
||||
|
||||
|
@ -1,12 +1,10 @@
|
||||
; Test that opaque types are preserved correctly
|
||||
; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | llvm-as | llvm-dis
|
||||
; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis
|
||||
;
|
||||
|
||||
%Ty = type opaque
|
||||
|
||||
implementation
|
||||
|
||||
%Ty* %func() {
|
||||
define %Ty* @func() {
|
||||
ret %Ty* null
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,5 @@
|
||||
; Test double quotes in strings work correctly!
|
||||
; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | llvm-as | llvm-dis
|
||||
; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis
|
||||
;
|
||||
|
||||
%str = internal global [6 x sbyte] c"\22foo\22\00"
|
||||
@str = internal global [6 x i8] c"\22foo\22\00" ; <[6 x i8]*> [#uses=0]
|
||||
|
||||
|
@ -1,13 +1,15 @@
|
||||
; Test that returning a pointer to a function causes the disassembler to print
|
||||
; the right thing.
|
||||
;
|
||||
; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | llvm-as
|
||||
; RUN: llvm-as < %s | llvm-dis | llvm-as
|
||||
|
||||
%ty = type void (int)
|
||||
%ty = type void (i32)
|
||||
|
||||
declare %ty* %foo()
|
||||
declare %ty* @foo()
|
||||
|
||||
void %test() {
|
||||
call %ty*()* %foo()
|
||||
define void @test() {
|
||||
call %ty* ()* @foo( ) ; <%ty*>:1 [#uses=0]
|
||||
ret void
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | llvm-as
|
||||
; RUN: llvm-as < %s | llvm-dis | llvm-as
|
||||
|
||||
; Make sure that \\ works in a string initializer
|
||||
%Slashtest = internal global [8 x sbyte] c"\5Cbegin{\00"
|
||||
@Slashtest = internal global [8 x i8] c"\5Cbegin{\00"
|
||||
|
||||
|
@ -1,8 +1,6 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
|
||||
|
||||
void %test(int %X) {
|
||||
call void (int)* cast (void(int) * %test to void(int) *) (int 6)
|
||||
define void @test(i32 %X) {
|
||||
call void @test( i32 6 )
|
||||
ret void
|
||||
|
||||
}
|
||||
|
@ -1,17 +1,16 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
|
||||
%.LC0 = internal global [12 x sbyte] c"hello world\00"
|
||||
@.LC0 = internal global [12 x i8] c"hello world\00" ; <[12 x i8]*> [#uses=1]
|
||||
|
||||
implementation ; Functions:
|
||||
|
||||
sbyte* %test() {
|
||||
define i8* @test() {
|
||||
; <label>:0
|
||||
br label %BB1
|
||||
|
||||
BB1: ;[#uses=2]
|
||||
%ret = phi sbyte* [ getelementptr ([12 x sbyte]* %.LC0, long 0, long 0), %0 ], [ null, %BB2 ]
|
||||
ret sbyte* %ret
|
||||
BB1: ; preds = %BB2, %0
|
||||
%ret = phi i8* [ getelementptr ([12 x i8]* @.LC0, i64 0, i64 0), %0 ], [ null, %BB2 ] ; <i8*> [#uses=1]
|
||||
ret i8* %ret
|
||||
|
||||
BB2:
|
||||
BB2: ; No predecessors!
|
||||
br label %BB1
|
||||
}
|
||||
|
||||
|
@ -1,10 +1,8 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
|
||||
%.LC0 = internal global [12 x sbyte] c"hello world\00" ; <[12 x sbyte]*> [#uses=1]
|
||||
@.LC0 = internal global [12 x i8] c"hello world\00" ; <[12 x i8]*> [#uses=1]
|
||||
|
||||
implementation ; Functions:
|
||||
|
||||
sbyte* %test() {
|
||||
ret sbyte* getelementptr ([12 x sbyte]* %.LC0, long 0, long 0)
|
||||
define i8* @test() {
|
||||
ret i8* getelementptr ([12 x i8]* @.LC0, i64 0, i64 0)
|
||||
}
|
||||
|
||||
|
@ -7,19 +7,16 @@
|
||||
; disassembling this would be good, but in addition to that, the bytecode
|
||||
; reader should NEVER produce a program "successfully" with placeholders still
|
||||
; around!
|
||||
;
|
||||
; RUN: llvm-as < %s | llvm-dis | llvm-as
|
||||
|
||||
; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | llvm-as
|
||||
@.LC0 = internal global [4 x i8] c"foo\00" ; <[4 x i8]*> [#uses=1]
|
||||
@X = global i8* null ; <i8**> [#uses=0]
|
||||
|
||||
%.LC0 = internal global [4 x sbyte] c"foo\00" ; <[4 x sbyte]*> [#uses=1]
|
||||
declare i32 @puts(i8*)
|
||||
|
||||
%X = global sbyte * null
|
||||
|
||||
implementation ; Functions:
|
||||
|
||||
declare int %puts(sbyte*)
|
||||
|
||||
void %main() {
|
||||
bb1: ;[#uses=0]
|
||||
%reg211 = call int %puts( sbyte* getelementptr ([4 x sbyte]* %.LC0, uint 0, uint 0) ) ; <int> [#uses=0]
|
||||
define void @main() {
|
||||
bb1:
|
||||
%reg211 = call i32 @puts( i8* getelementptr ([4 x i8]* @.LC0, i64 0, i64 0) ) ; <i32> [#uses=0]
|
||||
ret void
|
||||
}
|
||||
|
@ -1,22 +1,17 @@
|
||||
; Testcase that seems to break the bytecode reader. This comes from the
|
||||
; "crafty" spec benchmark.
|
||||
;
|
||||
; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | llvm-as
|
||||
; RUN: llvm-as < %s | opt -instcombine | llvm-dis | llvm-as
|
||||
|
||||
%CHESS_POSITION = type { uint, int }
|
||||
%CHESS_POSITION = type { i32, i32 }
|
||||
@pawn_probes = external global i32 ; <i32*> [#uses=0]
|
||||
@pawn_hash_mask = external global i32 ; <i32*> [#uses=0]
|
||||
@search = external global %CHESS_POSITION ; <%CHESS_POSITION*> [#uses=2]
|
||||
|
||||
%pawn_probes = uninitialized global int ; <int*> [#uses=1]
|
||||
%pawn_hash_mask = uninitialized global uint ; <uint*> [#uses=0]
|
||||
|
||||
%search = uninitialized global %CHESS_POSITION ; <%CHESS_POSITION*> [#uses=6]
|
||||
|
||||
implementation ; Functions:
|
||||
|
||||
void %Evaluate() {
|
||||
%reg1321 = getelementptr %CHESS_POSITION* %search, uint 0, ubyte 1
|
||||
%reg114 = load int* %reg1321 ; <int> [#uses=0]
|
||||
|
||||
%reg1801 = getelementptr %CHESS_POSITION* %search, uint 0, ubyte 0
|
||||
%reg182 = load uint* %reg1801 ; <uint> [#uses=1]
|
||||
define void @Evaluate() {
|
||||
%reg1321 = getelementptr %CHESS_POSITION* @search, i64 0, i32 1 ; <i32*> [#uses=1]
|
||||
%reg114 = load i32* %reg1321 ; <i32> [#uses=0]
|
||||
%reg1801 = getelementptr %CHESS_POSITION* @search, i64 0, i32 0 ; <i32*> [#uses=1]
|
||||
%reg182 = load i32* %reg1801 ; <i32> [#uses=0]
|
||||
ret void
|
||||
}
|
||||
|
@ -1,15 +1,17 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
|
||||
; Dominance relationships is not calculated correctly for unreachable blocks,
|
||||
; which causes the verifier to barf on this input.
|
||||
|
||||
int %test(bool %b) {
|
||||
BB0: ret int 7 ; Loop is unreachable
|
||||
define i32 @test(i1 %b) {
|
||||
BB0:
|
||||
ret i32 7 ; Loop is unreachable
|
||||
|
||||
Loop:
|
||||
%B = phi int [%B, %L2], [%B, %Loop] ; PHI has same value always.
|
||||
br bool %b, label %L2, label %Loop
|
||||
L2:
|
||||
Loop: ; preds = %L2, %Loop
|
||||
%B = phi i32 [ %B, %L2 ], [ %B, %Loop ] ;PHI has same value always.
|
||||
br i1 %b, label %L2, label %Loop
|
||||
|
||||
L2: ; preds = %Loop
|
||||
br label %Loop
|
||||
}
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
@ -1,8 +1,5 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as | llvm-dis
|
||||
; RUN: llvm-as < %s | llvm-dis
|
||||
|
||||
%Domain = type { %Domain**, %Domain* }
|
||||
|
||||
%D = global %Domain { %Domain** null, %Domain* null }
|
||||
|
||||
implementation
|
||||
@D = global %Domain zeroinitializer ; <%Domain*> [#uses=0]
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
|
||||
declare int "ArrayRef"([100 x int] * %Array)
|
||||
declare i32 @"ArrayRef"([100 x i32] * %Array)
|
||||
|
||||
int "ArrayRef"([100 x int] * %Array) {
|
||||
ret int 0
|
||||
define i32 @"ArrayRef"([100 x i32] * %Array) {
|
||||
ret i32 0
|
||||
}
|
||||
|
@ -1,10 +1,7 @@
|
||||
; RUN: llvm-upgrade < %s 2>/dev/null | llvm-as -o /dev/null -f
|
||||
; RUN: llvm-upgrade < %s |& grep {Renaming global variable 'X' to}
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
|
||||
%X = external global uint *
|
||||
%X = external global %T*
|
||||
%X = external global int *
|
||||
@X = external global i32*
|
||||
@X1 = external global %T*
|
||||
@X2 = external global i32*
|
||||
|
||||
%T = type int
|
||||
|
||||
implementation
|
||||
%T = type i32
|
||||
|
@ -1,5 +1,4 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
|
||||
|
||||
%spell_order = global [4 x ubyte] c"\FF\00\F7\00"
|
||||
@spell_order = global [4 x i8] c"\FF\00\F7\00"
|
||||
|
||||
|
@ -1,9 +1,7 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
; There should be absolutely no problem with this testcase.
|
||||
|
||||
implementation
|
||||
|
||||
int %test(int %arg1, int %arg2) {
|
||||
ret int cast (int (int, int)* %test to int)
|
||||
define i32 @test(i32 %arg1, i32 %arg2) {
|
||||
ret i32 ptrtoint (i32 (i32, i32)* @test to i32)
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as | llvm-dis
|
||||
; RUN: llvm-as < %s | llvm-dis
|
||||
|
||||
void %test() {
|
||||
%tmp.123 = cast long cast ([5 x { ubyte, sbyte }]* getelementptr ([30 x [5 x { ubyte, sbyte }]]* null, long 0, long 0) to long) to int
|
||||
define void @test() {
|
||||
%tmp.123 = trunc i64 0 to i32 ; <i32> [#uses=0]
|
||||
ret void
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | grep -- -2147483648
|
||||
; RUN: llvm-as < %s | llvm-dis | grep -- -2147483648
|
||||
|
||||
int %foo() {
|
||||
ret int -2147483648
|
||||
define i32 @foo() {
|
||||
ret i32 -2147483648
|
||||
}
|
||||
|
@ -1,15 +1,14 @@
|
||||
; This bug was caused by two CPR's existing for the same global variable,
|
||||
; colliding in the Module level CPR map.
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
|
||||
void %test() {
|
||||
call void (...)* cast (void (short*, int)* %AddString to void (...)*)(short* null, int 0)
|
||||
define void @test() {
|
||||
call void (...)* bitcast (void (i16*, i32)* @AddString to void (...)*)( i16* null, i32 0 )
|
||||
ret void
|
||||
}
|
||||
|
||||
void %AddString(short* %tmp.124, int %tmp.127) {
|
||||
call void (...)* cast (void (short*, int)* %AddString to void (...)*)(short* %tmp.124, int %tmp.127)
|
||||
define void @AddString(i16* %tmp.124, i32 %tmp.127) {
|
||||
call void (...)* bitcast (void (i16*, i32)* @AddString to void (...)*)( i16* %tmp.124, i32 %tmp.127 )
|
||||
ret void
|
||||
}
|
||||
|
||||
|
@ -1,9 +1,11 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
|
||||
; Check minimal switch statement
|
||||
|
||||
void %test(int %X) {
|
||||
switch int %X, label %dest []
|
||||
dest:
|
||||
define void @test(i32 %X) {
|
||||
switch i32 %X, label %dest [
|
||||
]
|
||||
|
||||
dest: ; preds = %0
|
||||
ret void
|
||||
}
|
||||
|
@ -1,5 +1,4 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
; Test that shift instructions can be used in constant expressions.
|
||||
|
||||
global int shl (int 7, ubyte 19)
|
||||
global i32 3670016
|
||||
|
@ -1,6 +1,6 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
|
||||
; The old C front-end never generated empty structures, now the new one
|
||||
; can. For some reason we never handled them in the parser. Weird.
|
||||
|
||||
%X = global {} {}
|
||||
@X = global { } zeroinitializer
|
||||
|
@ -1,6 +1,9 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as | llvm-dis
|
||||
void %test() {
|
||||
invoke void %test() to label %Next except label %Next
|
||||
Next:
|
||||
; RUN: llvm-as < %s | llvm-dis
|
||||
|
||||
define void @test() {
|
||||
invoke void @test( )
|
||||
to label %Next unwind label %Next
|
||||
|
||||
Next: ; preds = %0, %0
|
||||
ret void
|
||||
}
|
||||
|
@ -1,7 +1,3 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
|
||||
|
||||
%MidFnTy = type void (void (%MidFnTy* )*)
|
||||
|
||||
implementation
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
|
||||
%MidFnTy = type void (%MidFnTy*)
|
||||
|
@ -1,18 +1,16 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -simplifycfg | llvm-dis | not grep br
|
||||
; RUN: llvm-as < %s | opt -instcombine -simplifycfg | llvm-dis | not grep br
|
||||
|
||||
%.str_1 = internal constant [6 x sbyte] c"_Bool\00" ; <[6 x sbyte]*> [#uses=1]
|
||||
@.str_1 = internal constant [6 x i8] c"_Bool\00" ; <[6 x i8]*> [#uses=2]
|
||||
|
||||
implementation
|
||||
define i32 @test() {
|
||||
%tmp.54 = load i8* getelementptr ([6 x i8]* @.str_1, i64 0, i64 1) ; <i8> [#uses=1]
|
||||
%tmp.55 = icmp ne i8 %tmp.54, 66 ; <i1> [#uses=1]
|
||||
br i1 %tmp.55, label %then.7, label %endif.7
|
||||
|
||||
int %test() {
|
||||
%tmp.54 = load sbyte* getelementptr (sbyte* getelementptr ([6 x sbyte]* %.str_1, long 0, long 0), long 1)
|
||||
; <sbyte> [#uses=1]
|
||||
%tmp.55 = setne sbyte %tmp.54, 66 ; <bool> [#uses=1]
|
||||
br bool %tmp.55, label %then.7, label %endif.7
|
||||
then.7:
|
||||
then.7: ; preds = %then.7, %0
|
||||
br label %then.7
|
||||
endif.7:
|
||||
ret int 0
|
||||
|
||||
endif.7: ; preds = %0
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | not grep getelementptr
|
||||
|
||||
%A = external global { float } ; <{ float }*> [#uses=1]
|
||||
global int* cast (float* getelementptr ({ float }* %A, long 0, ubyte 0) to int*)
|
||||
; RUN: llvm-as < %s | llvm-dis | not grep getelementptr
|
||||
|
||||
@A = external global { float } ; <{ float }*> [#uses=2]
|
||||
global i32* bitcast ({ float }* @A to i32*) ; <i32**>:0 [#uses=0]
|
||||
|
@ -1,7 +1,6 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
|
||||
%T = type opaque
|
||||
%X = global %T* null
|
||||
%Y = global int* null
|
||||
%T = type i32
|
||||
@X = global i32* null ; <i32**> [#uses=0]
|
||||
@Y = global i32* null ; <i32**> [#uses=0]
|
||||
|
||||
%T = type int
|
||||
|
@ -1,5 +1,5 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as | llvm-dis
|
||||
; RUN: llvm-as < %s | llvm-dis
|
||||
|
||||
int %test() {
|
||||
ret int shr (int cast (int()* %test to int), ubyte 2)
|
||||
define i32 @test() {
|
||||
ret i32 ashr (i32 ptrtoint (i32 ()* @test to i32), i32 2)
|
||||
}
|
||||
|
@ -1,10 +1,10 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | not grep { bitcast (}
|
||||
; RUN: llvm-as < %s | llvm-dis | not grep { bitcast (}
|
||||
|
||||
%.Base64_1 = external constant [4 x sbyte]
|
||||
@.Base64_1 = external constant [4 x i8] ; <[4 x i8]*> [#uses=1]
|
||||
|
||||
ubyte %test(sbyte %Y) { ; No predecessors!
|
||||
%X = cast sbyte %Y to ubyte ; <ubyte> [#uses=1]
|
||||
%tmp.13 = add ubyte %X, cast (sbyte sub (sbyte 0, sbyte cast ([4 x sbyte]* %.Base64_1 to sbyte)) to ubyte) ; <ubyte> [#uses=1]
|
||||
ret ubyte %tmp.13
|
||||
define i8 @test(i8 %Y) {
|
||||
%X = bitcast i8 %Y to i8 ; <i8> [#uses=1]
|
||||
%tmp.13 = add i8 %X, sub (i8 0, i8 ptrtoint ([4 x i8]* @.Base64_1 to i8)) ; <i8> [#uses=1]
|
||||
ret i8 %tmp.13
|
||||
}
|
||||
|
||||
|
@ -1,12 +1,12 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | \
|
||||
; RUN: llvm-as < %s | llvm-dis | \
|
||||
; RUN: not grep {getelementptr.*getelementptr}
|
||||
|
||||
%struct.TUVVertex = type { short, short, short, short }
|
||||
%struct.TTriangleItem = type { sbyte*, sbyte*, [3 x %struct.TUVVertex] }
|
||||
%struct.TTriangleItem = type { i8*, i8*, [3 x %struct.TUVVertex] }
|
||||
%struct.TUVVertex = type { i16, i16, i16, i16 }
|
||||
@data_triangleItems = internal constant [2908 x %struct.TTriangleItem] zeroinitializer; <[2908 x %struct.TTriangleItem]*> [#uses=2]
|
||||
|
||||
%data_triangleItems = internal constant [2908 x %struct.TTriangleItem] zeroinitializer
|
||||
|
||||
void %foo() {
|
||||
store short 0, short* getelementptr ([3 x %struct.TUVVertex]* getelementptr ([2908 x %struct.TTriangleItem]* %data_triangleItems, long 0, long 0, ubyte 2), long 0, long 0, ubyte 0)
|
||||
define void @foo() {
|
||||
store i16 0, i16* getelementptr ([2908 x %struct.TTriangleItem]* @data_triangleItems, i64 0, i64 0, i32 2, i64 0, i32 0)
|
||||
ret void
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | grep 9223372036854775808
|
||||
; RUN: llvm-as < %s | llvm-dis | grep 9223372036854775808
|
||||
|
||||
global long -9223372036854775808
|
||||
global i64 -9223372036854775808
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | grep -- -0.0
|
||||
|
||||
; RUN: llvm-as < %s | llvm-dis | grep -- -0.0
|
||||
|
||||
global double 0x8000000000000000
|
||||
global float -0.0
|
||||
|
@ -1,23 +1,23 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
|
||||
; RUN: llvm-as < %s -o /dev/null -f
|
||||
|
||||
; %inc2 uses it's own value, but that's ok, as it's unreachable!
|
||||
|
||||
void %test() {
|
||||
define void @test() {
|
||||
entry:
|
||||
ret void
|
||||
|
||||
no_exit.2: ; preds = %endif.6
|
||||
%tmp.103 = setlt double 0x0, 0x0 ; <bool> [#uses=1]
|
||||
br bool %tmp.103, label %endif.6, label %else.0
|
||||
%tmp.103 = fcmp olt double 0.000000e+00, 0.000000e+00 ; <i1> [#uses=1]
|
||||
br i1 %tmp.103, label %endif.6, label %else.0
|
||||
|
||||
else.0: ; preds = %no_exit.2
|
||||
store ushort 0, ushort* null
|
||||
store i16 0, i16* null
|
||||
br label %endif.6
|
||||
|
||||
endif.6: ; preds = %no_exit.2, %else.0
|
||||
%inc.2 = add int %inc.2, 1 ; <int> [#uses=2]
|
||||
%tmp.96 = setlt int %inc.2, 0 ; <bool> [#uses=1]
|
||||
br bool %tmp.96, label %no_exit.2, label %UnifiedReturnBlock1
|
||||
endif.6: ; preds = %else.0, %no_exit.2
|
||||
%inc.2 = add i32 %inc.2, 1 ; <i32> [#uses=2]
|
||||
%tmp.96 = icmp slt i32 %inc.2, 0 ; <i1> [#uses=1]
|
||||
br i1 %tmp.96, label %no_exit.2, label %UnifiedReturnBlock1
|
||||
|
||||
UnifiedReturnBlock1: ; preds = %endif.6
|
||||
ret void
|
||||
|
Loading…
Reference in New Issue
Block a user