[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / X86 / 2008-01-16-InvalidDAGCombineXform.ll
bloba08fc1cbd052fdd3a707063081fb59fd991eed40
1 ; RUN: llc < %s -mtriple=i686-- | not grep IMPLICIT_DEF
3         %struct.node_t = type { double*, %struct.node_t*, %struct.node_t**, double**, double*, i32, i32 }
5 define void @localize_local_bb19_bb(%struct.node_t** %cur_node) {
6 newFuncRoot:
7         %tmp1 = load %struct.node_t*, %struct.node_t** %cur_node, align 4               ; <%struct.node_t*> [#uses=1]
8         %tmp2 = getelementptr %struct.node_t, %struct.node_t* %tmp1, i32 0, i32 4               ; <double**> [#uses=1]
9         %tmp3 = load double*, double** %tmp2, align 4           ; <double*> [#uses=1]
10         %tmp4 = load %struct.node_t*, %struct.node_t** %cur_node, align 4               ; <%struct.node_t*> [#uses=1]
11         %tmp5 = getelementptr %struct.node_t, %struct.node_t* %tmp4, i32 0, i32 4               ; <double**> [#uses=1]
12         store double* %tmp3, double** %tmp5, align 4
13         %tmp6 = load %struct.node_t*, %struct.node_t** %cur_node, align 4               ; <%struct.node_t*> [#uses=1]
14         %tmp7 = getelementptr %struct.node_t, %struct.node_t* %tmp6, i32 0, i32 3               ; <double***> [#uses=1]
15         %tmp8 = load double**, double*** %tmp7, align 4         ; <double**> [#uses=1]
16         %tmp9 = load %struct.node_t*, %struct.node_t** %cur_node, align 4               ; <%struct.node_t*> [#uses=1]
17         %tmp10 = getelementptr %struct.node_t, %struct.node_t* %tmp9, i32 0, i32 3              ; <double***> [#uses=1]
18         store double** %tmp8, double*** %tmp10, align 4
19         %tmp11 = load %struct.node_t*, %struct.node_t** %cur_node, align 4              ; <%struct.node_t*> [#uses=1]
20         %tmp12 = getelementptr %struct.node_t, %struct.node_t* %tmp11, i32 0, i32 0             ; <double**> [#uses=1]
21         %tmp13 = load double*, double** %tmp12, align 4         ; <double*> [#uses=1]
22         %tmp14 = load %struct.node_t*, %struct.node_t** %cur_node, align 4              ; <%struct.node_t*> [#uses=1]
23         %tmp15 = getelementptr %struct.node_t, %struct.node_t* %tmp14, i32 0, i32 0             ; <double**> [#uses=1]
24         store double* %tmp13, double** %tmp15, align 4
25         %tmp16 = load %struct.node_t*, %struct.node_t** %cur_node, align 4              ; <%struct.node_t*> [#uses=1]
26         %tmp17 = getelementptr %struct.node_t, %struct.node_t* %tmp16, i32 0, i32 1             ; <%struct.node_t**> [#uses=1]
27         %tmp18 = load %struct.node_t*, %struct.node_t** %tmp17, align 4         ; <%struct.node_t*> [#uses=1]
28         store %struct.node_t* %tmp18, %struct.node_t** %cur_node, align 4
29         ret void