brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · db57883 Raw
40 lines · plain
1; RUN: llc < %s2 3;; Date:     May 28, 2003.4;; From:     test/Programs/External/SPEC/CINT2000/254.gap.llvm.bc5;; Function: int %OpenOutput(sbyte* %filename.1)6;;7;; Error:    A sequence of GEPs is folded incorrectly by llc during selection8;;	     causing an assertion about a dynamic casting error.9;;	     This code sequence was produced (correctly) by preselection10;;	     from a nested pair of ConstantExpr getelementptrs.11;;	     The code below is the output of preselection.12;;	     The original ConstantExprs are included in a comment.13;;14;; Cause:    FoldGetElemChain() was inserting an extra leading 0 even though15;;	     the first instruction in the sequence contributes no indices.16;;	     The next instruction contributes a leading non-zero so another17;;	     zero should not be added before it!18;;19        %FileType = type { i32, [256 x i8], i32, i32, i32, i32 }20@OutputFiles = external global [16 x %FileType]         ; <ptr> [#uses=1]21@Output = internal global ptr null               ; <ptr> [#uses=1]22 23define internal i32 @OpenOutput(ptr %filename.1) {24entry:25        %tmp.0 = load ptr, ptr @Output               ; <ptr> [#uses=1]26        %tmp.4 = getelementptr %FileType, ptr %tmp.0, i64 1         ; <ptr> [#uses=1]27        %addrOfGlobal = getelementptr [16 x %FileType], ptr @OutputFiles, i64 0             ; <ptr> [#uses=1]28        %constantGEP = getelementptr [16 x %FileType], ptr %addrOfGlobal, i64 1             ; <ptr> [#uses=1]29        %constantGEP.upgrd.1 = getelementptr [16 x %FileType], ptr %constantGEP, i64 0, i64 0               ; <ptr> [#uses=1]30        %tmp.10 = icmp eq ptr %tmp.4, %constantGEP.upgrd.1               ; <i1> [#uses=1]31        br i1 %tmp.10, label %return, label %endif.032 33endif.0:                ; preds = %entry34        ret i32 035 36return:         ; preds = %entry37        ret i32 138}39 40