[flang] Fix length handling in character kind implicit conversion (#74586)
[llvm-project.git] / polly / test / CodeGen / inv-load-lnt-crash-wrong-order-3.ll
bloba573049c8f673b74dced407a3f29b9de69722443
1 ; RUN: opt %loadPolly -polly-codegen -S \
2 ; RUN: -polly-invariant-load-hoisting=true < %s | FileCheck %s
4 ; This crashed our codegen at some point, verify it runs through
6 ; CHECK: polly.start
8 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
10 %struct.colocated_params = type { i32, i32, i32, [6 x [33 x i64]], ptr, ptr, ptr, ptr, [6 x [33 x i64]], ptr, ptr, ptr, ptr, [6 x [33 x i64]], ptr, ptr, ptr, ptr, i8, ptr }
11 %struct.storable_picture9 = type { i32, i32, i32, i32, i32, [50 x [6 x [33 x i64]]], [50 x [6 x [33 x i64]]], [50 x [6 x [33 x i64]]], [50 x [6 x [33 x i64]]], i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [2 x i32], i32, ptr, i32 }
12 %struct.DecRefPicMarking_s = type { i32, i32, i32, i32, i32, ptr }
14 ; Function Attrs: nounwind uwtable
15 define void @compute_colocated(ptr %p) #0 {
16 entry:
17   %tmp = load ptr, ptr undef, align 8
18   br label %for.body.393
20 for.body.393:                                     ; preds = %if.end.549, %entry
21   br i1 undef, label %if.then.397, label %if.else.643
23 if.then.397:                                      ; preds = %for.body.393
24   %ref_idx456 = getelementptr inbounds %struct.storable_picture9, ptr %tmp, i64 0, i32 36
25   %tmp1 = load ptr, ptr %ref_idx456, align 8
26   %tmp2 = load ptr, ptr %tmp1, align 8
27   %tmp3 = load ptr, ptr %tmp2, align 8
28   %tmp4 = load i8, ptr %tmp3, align 1
29   %cmp461 = icmp eq i8 %tmp4, -1
30   br i1 %cmp461, label %if.then.463, label %if.else.476
32 if.then.463:                                      ; preds = %if.then.397
33   br label %if.end.501
35 if.else.476:                                      ; preds = %if.then.397
36   %ref_id491 = getelementptr inbounds %struct.storable_picture9, ptr %tmp, i64 0, i32 38
37   %tmp5 = load ptr, ptr %ref_id491, align 8
38   br label %if.end.501
40 if.end.501:                                       ; preds = %if.else.476, %if.then.463
41   %tmp6 = load ptr, ptr %ref_idx456, align 8
42   %arrayidx505 = getelementptr inbounds ptr, ptr %tmp6, i64 1
43   %tmp7 = load ptr, ptr %arrayidx505, align 8
44   %tmp8 = load ptr, ptr %tmp7, align 8
45   %tmp9 = load i8, ptr %tmp8, align 1
46   %cmp509 = icmp eq i8 %tmp9, -1
47   %ref_idx514 = getelementptr inbounds %struct.colocated_params, ptr %p, i64 0, i32 4
48   %tmp10 = load ptr, ptr %ref_idx514, align 8
49   %arrayidx515 = getelementptr inbounds ptr, ptr %tmp10, i64 1
50   %tmp11 = load ptr, ptr %arrayidx515, align 8
51   %tmp12 = load ptr, ptr %tmp11, align 8
52   br i1 %cmp509, label %if.then.511, label %if.else.524
54 if.then.511:                                      ; preds = %if.end.501
55   br label %if.end.549
57 if.else.524:                                      ; preds = %if.end.501
58   store i8 %tmp9, ptr %tmp12, align 1
59   %ref_id539 = getelementptr inbounds %struct.storable_picture9, ptr %tmp, i64 0, i32 38
60   %tmp13 = load ptr, ptr %ref_id539, align 8
61   br label %if.end.549
63 if.end.549:                                       ; preds = %if.else.524, %if.then.511
64   br label %for.body.393
66 if.else.643:                                      ; preds = %for.body.393
67   unreachable