X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FFeature%2Fconstexpr.ll;h=13e6f365aabf36aa3c7fa90f7c8d890179db18c8;hb=67a6b1c40c04178b52a53623e05a790f517622f1;hp=afbe0cd1f88d129176ec53177be31a59600dcb5f;hpb=69ccadd7535a83b348595cf603126e6a68b2883b;p=oota-llvm.git diff --git a/test/Feature/constexpr.ll b/test/Feature/constexpr.ll index afbe0cd1f88..13e6f365aab 100644 --- a/test/Feature/constexpr.ll +++ b/test/Feature/constexpr.ll @@ -1,4 +1,4 @@ -; RUN: llvm-upgrade < %s | llvm-as | llvm-dis > %t1.ll +; RUN: llvm-as < %s | llvm-dis > %t1.ll ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll ; RUN: diff %t1.ll %t2.ll @@ -10,20 +10,20 @@ ;; Test constant cast expressions ;;------------------------------- -global ulong u0x00001 ; hexadecimal unsigned integer constants -global long s0x0012312 ; hexadecimal signed integer constants +global i64 u0x00001 ; hexadecimal unsigned integer constants +global i64 s0x0012312 ; hexadecimal signed integer constants -%t2 = global int* %t1 ;; Forward reference without cast -%t3 = global uint* cast (int* %t1 to uint*) ;; Forward reference with cast -%t1 = global int 4 ;; int* %0 -%t4 = global int** cast (uint** %t3 to int**) ;; Cast of a previous cast -%t5 = global uint** %t3 ;; Reference to a previous cast -%t6 = global int*** %t4 ;; Different ref. to a previous cast -%t7 = global float* cast (int 12345678 to float*) ;; Cast ordinary value to ptr -%t9 = global int cast (float cast (int 8 to float) to int) ;; Nested cast expression +@t2 = global i32* @t1 ;; Forward reference without cast +@t3 = global i32* bitcast (i32* @t1 to i32*) ;; Forward reference with cast +@t1 = global i32 4 ;; i32* @0 +@t4 = global i32** bitcast (i32** @t3 to i32**) ;; Cast of a previous cast +@t5 = global i32** @t3 ;; Reference to a previous cast +@t6 = global i32*** @t4 ;; Different ref. to a previous cast +@t7 = global float* inttoptr (i32 12345678 to float*) ;; Cast ordinary value to ptr +@t9 = global i32 bitcast (float bitcast (i32 8 to float) to i32) ;; Nested cast expression -global int* cast (float* %0 to int*) ;; Forward numeric reference -global float* %0 ;; Duplicate forward numeric reference +global i32* bitcast (float* @4 to i32*) ;; Forward numeric reference +global float* @4 ;; Duplicate forward numeric reference global float 0.0 @@ -31,65 +31,50 @@ global float 0.0 ;; Test constant getelementpr expressions for arrays ;;--------------------------------------------------- -%array = constant [2 x int] [ int 12, int 52 ] -%arrayPtr = global int* getelementptr ([2 x int]* %array, long 0, long 0) ;; int* &%array[0][0] -%arrayPtr5 = global int** getelementptr (int** %arrayPtr, long 5) ;; int* &%arrayPtr[5] +@array = constant [2 x i32] [ i32 12, i32 52 ] +@arrayPtr = global i32* getelementptr ([2 x i32]* @array, i64 0, i64 0) ;; i32* &@array[0][0] +@arrayPtr5 = global i32** getelementptr (i32** @arrayPtr, i64 5) ;; i32* &@arrayPtr[5] -%somestr = constant [11x sbyte] c"hello world" -%char5 = global sbyte* getelementptr([11x sbyte]* %somestr, long 0, long 5) +@somestr = constant [11x i8] c"hello world" +@char5 = global i8* getelementptr([11x i8]* @somestr, i64 0, i64 5) ;; cast of getelementptr -%char8a = global int* cast (sbyte* getelementptr([11x sbyte]* %somestr, long 0, long 8) to int*) +@char8a = global i32* bitcast (i8* getelementptr([11x i8]* @somestr, i64 0, i64 8) to i32*) ;; getelementptr containing casts -%char8b = global sbyte* getelementptr([11x sbyte]* %somestr, long cast (ubyte 0 to long), long cast (sbyte 8 to long)) +@char8b = global i8* getelementptr([11x i8]* @somestr, i64 sext (i8 0 to i64), i64 sext (i8 8 to i64)) ;;------------------------------------------------------- ;; TODO: Test constant getelementpr expressions for structures ;;------------------------------------------------------- -%SType = type { int , {float, {ubyte} }, ulong } ;; struct containing struct -%SAType = type { int , {[2x float], ulong} } ;; struct containing array +%SType = type { i32 , {float, {i8} }, i64 } ;; struct containing struct +%SAType = type { i32 , {[2x float], i64} } ;; struct containing array -%S1 = global %SType* null ;; Global initialized to NULL -%S2c = constant %SType { int 1, {float,{ubyte}} {float 2.0, {ubyte} {ubyte 3}}, ulong 4} +@S1 = global %SType* null ;; Global initialized to NULL +@S2c = constant %SType { i32 1, {float,{i8}} {float 2.0, {i8} {i8 3}}, i64 4} -%S3c = constant %SAType { int 1, {[2x float], ulong} {[2x float] [float 2.0, float 3.0], ulong 4} } +@S3c = constant %SAType { i32 1, {[2x float], i64} {[2x float] [float 2.0, float 3.0], i64 4} } -%S1ptr = global %SType** %S1 ;; Ref. to global S1 -%S2 = global %SType* %S2c ;; Ref. to constant S2 -%S3 = global %SAType* %S3c ;; Ref. to constant S3 +@S1ptr = global %SType** @S1 ;; Ref. to global S1 +@S2 = global %SType* @S2c ;; Ref. to constant S2 +@S3 = global %SAType* @S3c ;; Ref. to constant S3 - ;; Pointer to float (**%S1).1.0 -%S1fld1a = global float* getelementptr (%SType* %S2c, long 0, uint 1, uint 0) + ;; Pointer to float (**@S1).1.0 +@S1fld1a = global float* getelementptr (%SType* @S2c, i64 0, i32 1, i32 0) ;; Another ptr to the same! -%S1fld1b = global float* getelementptr (%SType* %S2c, long 0, uint 1, uint 0) +@S1fld1b = global float* getelementptr (%SType* @S2c, i64 0, i32 1, i32 0) -%S1fld1bptr = global float** %S1fld1b ;; Ref. to previous pointer +@S1fld1bptr = global float** @S1fld1b ;; Ref. to previous pointer - ;; Pointer to ubyte (**%S2).1.1.0 -%S2fld3 = global ubyte* getelementptr (%SType* %S2c, long 0, uint 1, uint 1, uint 0) + ;; Pointer to i8 (**@S2).1.1.0 +@S2fld3 = global i8* getelementptr (%SType* @S2c, i64 0, i32 1, i32 1, i32 0) - ;; Pointer to float (**%S2).1.0[0] -;%S3fld3 = global float* getelementptr (%SAType** %S3, long 0, long 0, uint 1, uint 0, long 0) + ;; Pointer to float (**@S2).1.0[0] +;@S3fld3 = global float* getelementptr (%SAType** @S3, i64 0, i64 0, i32 1, i32 0, i64 0) ;;--------------------------------------------------------- ;; TODO: Test constant expressions for unary and binary operators ;;--------------------------------------------------------- - -;;--------------------------------------------------- -;; Test duplicate constant expressions -;;--------------------------------------------------- - -%t4 = global int** cast (uint** %t3 to int**) - -%char8a = global int* cast (sbyte* getelementptr([11x sbyte]* %somestr, long 0, long 8) to int*) - -;%S3fld3 = global float* getelementptr (%SAType** %S3, long 0, long 0, uint 1, uint 0, long 0) - - ;;--------------------------------------------------- - -implementation -