move a single test case to where most other instcombine shuffle bug test cases exist
[oota-llvm.git] / test / Transforms / GVN / 2009-02-17-LoadPRECrash.ll
index b3ad47de4032899aaf142bc4473bdab48d55224b..808f28c674c599994681f4a2315c9034b1705cb1 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: opt %s -gvn -enable-load-pre -disable-output
+; RUN: opt %s -gvn -enable-load-pre -disable-output
 
        %struct.VEC_rtx_base = type { i32, i32, [1 x %struct.rtx_def*] }
        %struct.VEC_rtx_gc = type { %struct.VEC_rtx_base }
@@ -24,11 +24,11 @@ entry:
        %addr = alloca %struct.rtx_def*         ; <%struct.rtx_def**> [#uses=5]
        %iftmp.1532 = alloca %struct.rtx_def*           ; <%struct.rtx_def**> [#uses=3]
        store %struct.rtx_def* %orig, %struct.rtx_def** null
-       %0 = load %struct.rtx_def** null, align 4               ; <%struct.rtx_def*> [#uses=0]
+       %0 = load %struct.rtx_def*, %struct.rtx_def** null, align 4             ; <%struct.rtx_def*> [#uses=0]
        br i1 false, label %bb96, label %bb59
 
 bb59:          ; preds = %entry
-       %1 = load %struct.rtx_def** %addr, align 4              ; <%struct.rtx_def*> [#uses=1]
+       %1 = load %struct.rtx_def*, %struct.rtx_def** %addr, align 4            ; <%struct.rtx_def*> [#uses=1]
        %2 = call i32 @local_symbolic_operand(%struct.rtx_def* %1, i32 0) nounwind              ; <i32> [#uses=0]
        br i1 false, label %bb96, label %bb63
 
@@ -54,7 +54,7 @@ bb76:         ; preds = %bb75, %bb74
        br i1 false, label %bb77, label %bb84
 
 bb77:          ; preds = %bb76
-       %3 = getelementptr [1 x %struct.cgraph_rtl_info]* null, i32 0, i32 0            ; <%struct.cgraph_rtl_info*> [#uses=0]
+       %3 = getelementptr [1 x %struct.cgraph_rtl_info], [1 x %struct.cgraph_rtl_info]* null, i32 0, i32 0             ; <%struct.cgraph_rtl_info*> [#uses=0]
        unreachable
 
 bb84:          ; preds = %bb76
@@ -89,22 +89,22 @@ bb94:               ; preds = %bb93, %bb92
        unreachable
 
 bb96:          ; preds = %bb59, %entry
-       %5 = load %struct.rtx_def** %addr, align 4              ; <%struct.rtx_def*> [#uses=1]
-       %6 = getelementptr %struct.rtx_def* %5, i32 0, i32 0            ; <i16*> [#uses=1]
-       %7 = load i16* %6, align 2              ; <i16> [#uses=0]
+       %5 = load %struct.rtx_def*, %struct.rtx_def** %addr, align 4            ; <%struct.rtx_def*> [#uses=1]
+       %6 = getelementptr %struct.rtx_def, %struct.rtx_def* %5, i32 0, i32 0           ; <i16*> [#uses=1]
+       %7 = load i16, i16* %6, align 2         ; <i16> [#uses=0]
        br i1 false, label %bb147, label %bb97
 
 bb97:          ; preds = %bb96
-       %8 = load %struct.rtx_def** %addr, align 4              ; <%struct.rtx_def*> [#uses=0]
+       %8 = load %struct.rtx_def*, %struct.rtx_def** %addr, align 4            ; <%struct.rtx_def*> [#uses=0]
        br i1 false, label %bb147, label %bb99
 
 bb99:          ; preds = %bb97
        unreachable
 
 bb147:         ; preds = %bb97, %bb96
-       %9 = load %struct.rtx_def** %addr, align 4              ; <%struct.rtx_def*> [#uses=1]
-       %10 = getelementptr %struct.rtx_def* %9, i32 0, i32 0           ; <i16*> [#uses=1]
-       %11 = load i16* %10, align 2            ; <i16> [#uses=0]
+       %9 = load %struct.rtx_def*, %struct.rtx_def** %addr, align 4            ; <%struct.rtx_def*> [#uses=1]
+       %10 = getelementptr %struct.rtx_def, %struct.rtx_def* %9, i32 0, i32 0          ; <i16*> [#uses=1]
+       %11 = load i16, i16* %10, align 2               ; <i16> [#uses=0]
        br i1 false, label %bb164, label %bb148
 
 bb148:         ; preds = %bb147
@@ -120,7 +120,7 @@ bb152:              ; preds = %bb149
        br label %bb164
 
 bb164:         ; preds = %bb152, %bb148, %bb147
-       %12 = getelementptr [1 x %struct.cgraph_rtl_info]* null, i32 0, i32 1           ; <%struct.cgraph_rtl_info*> [#uses=0]
+       %12 = getelementptr [1 x %struct.cgraph_rtl_info], [1 x %struct.cgraph_rtl_info]* null, i32 0, i32 1            ; <%struct.cgraph_rtl_info*> [#uses=0]
        br i1 false, label %bb165, label %bb166
 
 bb165:         ; preds = %bb164
@@ -163,12 +163,12 @@ bb180:            ; preds = %bb179, %bb178
        br label %bb181
 
 bb181:         ; preds = %bb180, %bb170
-       %13 = call %struct.rtvec_def* (i32, ...)* @gen_rtvec(i32 1, %struct.rtx_def* null) nounwind             ; <%struct.rtvec_def*> [#uses=0]
+       %13 = call %struct.rtvec_def* (i32, ...) @gen_rtvec(i32 1, %struct.rtx_def* null) nounwind              ; <%struct.rtvec_def*> [#uses=0]
        unreachable
 
 bb211:         ; preds = %bb168, %bb167
-       %14 = load %struct.rtx_def** %addr, align 4             ; <%struct.rtx_def*> [#uses=0]
-       %15 = getelementptr [1 x %struct.cgraph_rtl_info]* null, i32 0, i32 0           ; <%struct.cgraph_rtl_info*> [#uses=0]
+       %14 = load %struct.rtx_def*, %struct.rtx_def** %addr, align 4           ; <%struct.rtx_def*> [#uses=0]
+       %15 = getelementptr [1 x %struct.cgraph_rtl_info], [1 x %struct.cgraph_rtl_info]* null, i32 0, i32 0            ; <%struct.cgraph_rtl_info*> [#uses=0]
        store %struct.rtx_def* null, %struct.rtx_def** null, align 4
        br i1 false, label %bb212, label %bb213
 
@@ -182,12 +182,12 @@ bb213:            ; preds = %bb211
 
 bb214:         ; preds = %bb213, %bb212
        %16 = bitcast %struct.block_symbol* null to [1 x %struct.cgraph_rtl_info]*              ; <[1 x %struct.cgraph_rtl_info]*> [#uses=1]
-       %17 = getelementptr [1 x %struct.cgraph_rtl_info]* %16, i32 0, i32 1            ; <%struct.cgraph_rtl_info*> [#uses=0]
-       %18 = load %struct.rtx_def** %iftmp.1532, align 4               ; <%struct.rtx_def*> [#uses=0]
-       %19 = getelementptr %struct.rtx_def* null, i32 0, i32 3         ; <%struct.u*> [#uses=1]
-       %20 = getelementptr %struct.u* %19, i32 0, i32 0                ; <%struct.block_symbol*> [#uses=1]
+       %17 = getelementptr [1 x %struct.cgraph_rtl_info], [1 x %struct.cgraph_rtl_info]* %16, i32 0, i32 1             ; <%struct.cgraph_rtl_info*> [#uses=0]
+       %18 = load %struct.rtx_def*, %struct.rtx_def** %iftmp.1532, align 4             ; <%struct.rtx_def*> [#uses=0]
+       %19 = getelementptr %struct.rtx_def, %struct.rtx_def* null, i32 0, i32 3                ; <%struct.u*> [#uses=1]
+       %20 = getelementptr %struct.u, %struct.u* %19, i32 0, i32 0             ; <%struct.block_symbol*> [#uses=1]
        %21 = bitcast %struct.block_symbol* %20 to [1 x i64]*           ; <[1 x i64]*> [#uses=1]
-       %22 = getelementptr [1 x i64]* %21, i32 0, i32 0                ; <i64*> [#uses=0]
+       %22 = getelementptr [1 x i64], [1 x i64]* %21, i32 0, i32 0             ; <i64*> [#uses=0]
        %23 = call %struct.rtx_def* @plus_constant(%struct.rtx_def* null, i64 0) nounwind               ; <%struct.rtx_def*> [#uses=0]
        unreachable
 }