Some of these are feature tests, not regression tests.

This directory needs to be reorganized and some of the tests
need changes to make them executable.  Also comments would help...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2865 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Vikram S. Adve
2002-07-10 21:54:05 +00:00
parent 975f6d4f44
commit a7a1c7e971
20 changed files with 1208 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
; Test that a sequence of constant indices are folded correctly
; into the equivalent offset at compile-time.
%MixedA = type { float, [15 x int], sbyte, float }
%MixedB = type { float, %MixedA, float }
%fmtArg = internal global [44 x sbyte] c"sqrt(2) = %g\0Aexp(1) = %g\0Api = %g\0Afive = %g\0A\00"; <[44 x sbyte]*> [#uses=1]
implementation
declare int "printf"(sbyte*, ...)
int "main"()
begin
%ScalarA = alloca %MixedA
%ScalarB = alloca %MixedB
%ArrayA = alloca %MixedA, uint 4
%ArrayB = alloca %MixedB, uint 3
store float 1.4142, %MixedA* %ScalarA, uint 0, ubyte 0
store float 2.7183, %MixedB* %ScalarB, uint 0, ubyte 1, ubyte 0
%fptrA = getelementptr %MixedA* %ArrayA, uint 1, ubyte 0
%fptrB = getelementptr %MixedB* %ArrayB, uint 2, ubyte 1, ubyte 0
store float 3.1415, float* %fptrA
store float 5.0, float* %fptrB
%sqrtTwo = load %MixedA* %ScalarA, uint 0, ubyte 0
%exp = load %MixedB* %ScalarB, uint 0, ubyte 1, ubyte 0
%pi = load %MixedA* %ArrayA, uint 1, ubyte 0
%five = load %MixedB* %ArrayB, uint 2, ubyte 1, ubyte 0
%dsqrtTwo = cast float %sqrtTwo to double
%dexp = cast float %exp to double
%dpi = cast float %pi to double
%dfive = cast float %five to double
%castFmt = getelementptr [44 x sbyte]* %fmtArg, uint 0, uint 0
call int (sbyte*, ...)* %printf(sbyte* %castFmt, double %dsqrtTwo, double %dexp, double %dpi, double %dfive)
ret int 0
end