|
| 1 | +; RUN: llc < %s |
| 2 | +target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-G1-ni:7" |
| 3 | +target triple = "amdgcn-amd-amdhsa" |
| 4 | + |
| 5 | +@_RSENC_gDcd_______________________________ = external protected addrspace(1) externally_initialized global [4096 x i8], align 16 |
| 6 | + |
| 7 | +define protected amdgpu_kernel void @_RSENC_PRInit__________________________________() local_unnamed_addr #0 { |
| 8 | +entry: |
| 9 | + %runtimeVersionCopy = alloca [128 x i8], align 16, addrspace(5) |
| 10 | + %licenseVersionCopy = alloca [128 x i8], align 16, addrspace(5) |
| 11 | + %pD10 = alloca [128 x i8], align 16, addrspace(5) |
| 12 | + br label %if.end |
| 13 | + |
| 14 | +if.end: ; preds = %entry |
| 15 | + %0 = load i32, i32* undef, align 4 |
| 16 | + %mul = mul i32 %0, 3 |
| 17 | + %cmp13 = icmp eq i32 %mul, 989619 |
| 18 | + br i1 %cmp13, label %cleanup.cont, label %if.end15 |
| 19 | + |
| 20 | +if.end15: ; preds = %if.end |
| 21 | + br i1 undef, label %cleanup.cont, label %lor.lhs.false17 |
| 22 | + |
| 23 | +lor.lhs.false17: ; preds = %if.end15 |
| 24 | + br label %while.cond.i |
| 25 | + |
| 26 | +while.cond.i: ; preds = %while.cond.i, %lor.lhs.false17 |
| 27 | + switch i32 undef, label %if.end60 [ |
| 28 | + i32 0, label %while.cond.i |
| 29 | + i32 3, label %if.end60.loopexit857 |
| 30 | + ] |
| 31 | + |
| 32 | +if.end60.loopexit857: ; preds = %while.cond.i |
| 33 | + br label %if.end60 |
| 34 | + |
| 35 | +if.end60: ; preds = %if.end60.loopexit857, %while.cond.i |
| 36 | + %1 = load i8, i8 addrspace(1)* getelementptr inbounds ([4096 x i8], [4096 x i8] addrspace(1)* @_RSENC_gDcd_______________________________, i64 0, i64 655), align 1 |
| 37 | + %2 = getelementptr inbounds [128 x i8], [128 x i8] addrspace(5)* %runtimeVersionCopy, i32 0, i32 0 |
| 38 | + %arrayidx144260.5 = getelementptr inbounds [128 x i8], [128 x i8] addrspace(5)* %runtimeVersionCopy, i32 0, i32 5 |
| 39 | + %3 = getelementptr inbounds [128 x i8], [128 x i8] addrspace(5)* %licenseVersionCopy, i32 0, i32 0 |
| 40 | + %arrayidx156258.5 = getelementptr inbounds [128 x i8], [128 x i8] addrspace(5)* %licenseVersionCopy, i32 0, i32 5 |
| 41 | + switch i8 0, label %if.end5.i [ |
| 42 | + i8 45, label %if.then.i |
| 43 | + i8 43, label %if.then3.i |
| 44 | + ] |
| 45 | + |
| 46 | +if.then.i: ; preds = %if.end60 |
| 47 | + unreachable |
| 48 | + |
| 49 | +if.then3.i: ; preds = %if.end60 |
| 50 | + br label %if.end5.i |
| 51 | + |
| 52 | +if.end5.i: ; preds = %if.then3.i, %if.end60 |
| 53 | + %pS.addr.0.i = phi i8 addrspace(5)* [ undef, %if.then3.i ], [ %2, %if.end60 ] |
| 54 | + %4 = load i8, i8 addrspace(5)* %pS.addr.0.i, align 1 |
| 55 | + %conv612.i = sext i8 %4 to i32 |
| 56 | + %sub13.i = add nsw i32 %conv612.i, -48 |
| 57 | + %cmp714.i = icmp ugt i32 %sub13.i, 9 |
| 58 | + switch i8 undef, label %if.end5.i314 [ |
| 59 | + i8 45, label %if.then.i306 |
| 60 | + i8 43, label %if.then3.i308 |
| 61 | + ] |
| 62 | + |
| 63 | +if.then.i306: ; preds = %if.end5.i |
| 64 | + unreachable |
| 65 | + |
| 66 | +if.then3.i308: ; preds = %if.end5.i |
| 67 | + br label %if.end5.i314 |
| 68 | + |
| 69 | +if.end5.i314: ; preds = %if.then3.i308, %if.end5.i |
| 70 | + %pS.addr.0.i309 = phi i8 addrspace(5)* [ undef, %if.then3.i308 ], [ %3, %if.end5.i ] |
| 71 | + %5 = load i8, i8 addrspace(5)* %pS.addr.0.i309, align 1 |
| 72 | + %conv612.i311 = sext i8 %5 to i32 |
| 73 | + %sub13.i312 = add nsw i32 %conv612.i311, -48 |
| 74 | + %cmp714.i313 = icmp ugt i32 %sub13.i312, 9 |
| 75 | + switch i8 undef, label %if.end5.i338 [ |
| 76 | + i8 45, label %if.then.i330 |
| 77 | + i8 43, label %if.then3.i332 |
| 78 | + ] |
| 79 | + |
| 80 | +if.then.i330: ; preds = %if.end5.i314 |
| 81 | + unreachable |
| 82 | + |
| 83 | +if.then3.i332: ; preds = %if.end5.i314 |
| 84 | + br label %if.end5.i338 |
| 85 | + |
| 86 | +if.end5.i338: ; preds = %if.then3.i332, %if.end5.i314 |
| 87 | + %pS.addr.0.i333 = phi i8 addrspace(5)* [ undef, %if.then3.i332 ], [ %arrayidx144260.5, %if.end5.i314 ] |
| 88 | + %6 = load i8, i8 addrspace(5)* %pS.addr.0.i333, align 1 |
| 89 | + %conv612.i335 = sext i8 %6 to i32 |
| 90 | + %sub13.i336 = add nsw i32 %conv612.i335, -48 |
| 91 | + %cmp714.i337 = icmp ugt i32 %sub13.i336, 9 |
| 92 | + switch i8 undef, label %if.end5.i362 [ |
| 93 | + i8 45, label %if.then.i354 |
| 94 | + i8 43, label %if.then3.i356 |
| 95 | + ] |
| 96 | + |
| 97 | +if.then.i354: ; preds = %if.end5.i338 |
| 98 | + unreachable |
| 99 | + |
| 100 | +if.then3.i356: ; preds = %if.end5.i338 |
| 101 | + br label %if.end5.i362 |
| 102 | + |
| 103 | +if.end5.i362: ; preds = %if.then3.i356, %if.end5.i338 |
| 104 | + %pS.addr.0.i357 = phi i8 addrspace(5)* [ undef, %if.then3.i356 ], [ %arrayidx156258.5, %if.end5.i338 ] |
| 105 | + %7 = load i8, i8 addrspace(5)* %pS.addr.0.i357, align 1 |
| 106 | + %conv612.i359 = sext i8 %7 to i32 |
| 107 | + %sub13.i360 = add nsw i32 %conv612.i359, -48 |
| 108 | + %cmp714.i361 = icmp ugt i32 %sub13.i360, 9 |
| 109 | + store i8 0, i8 addrspace(5)* undef, align 16 |
| 110 | + %8 = load i8, i8 addrspace(1)* getelementptr inbounds ([4096 x i8], [4096 x i8] addrspace(1)* @_RSENC_gDcd_______________________________, i64 0, i64 1153), align 1 |
| 111 | + %arrayidx232250.1 = getelementptr inbounds [128 x i8], [128 x i8] addrspace(5)* %pD10, i32 0, i32 1 |
| 112 | + store i8 %8, i8 addrspace(5)* %arrayidx232250.1, align 1 |
| 113 | + switch i8 undef, label %if.end5.i400 [ |
| 114 | + i8 45, label %if.then.i392 |
| 115 | + i8 43, label %if.then3.i394 |
| 116 | + ] |
| 117 | + |
| 118 | +if.then.i392: ; preds = %if.end5.i362 |
| 119 | + unreachable |
| 120 | + |
| 121 | +if.then3.i394: ; preds = %if.end5.i362 |
| 122 | + br label %if.end5.i400 |
| 123 | + |
| 124 | +if.end5.i400: ; preds = %if.then3.i394, %if.end5.i362 |
| 125 | + %pS.addr.0.i395 = phi i8 addrspace(5)* [ %arrayidx232250.1, %if.then3.i394 ], [ undef, %if.end5.i362 ] |
| 126 | + %9 = load i8, i8 addrspace(5)* %pS.addr.0.i395, align 1 |
| 127 | + %conv612.i397 = sext i8 %9 to i32 |
| 128 | + %sub13.i398 = add nsw i32 %conv612.i397, -48 |
| 129 | + %cmp714.i399 = icmp ugt i32 %sub13.i398, 9 |
| 130 | + %10 = load i8, i8* undef, align 1 |
| 131 | + %cmp9.not.i500 = icmp eq i8 0, %10 |
| 132 | + br label %land.lhs.true402.critedge |
| 133 | + |
| 134 | +land.lhs.true402.critedge: ; preds = %if.end5.i400 |
| 135 | + br i1 %cmp9.not.i500, label %if.then404, label %if.else407 |
| 136 | + |
| 137 | +if.then404: ; preds = %land.lhs.true402.critedge |
| 138 | + br label %for.body564 |
| 139 | + |
| 140 | +if.else407: ; preds = %land.lhs.true402.critedge |
| 141 | + br label %if.end570 |
| 142 | + |
| 143 | +for.body564: ; preds = %for.body564, %if.then404 |
| 144 | + %i560.0801 = phi i32 [ 0, %if.then404 ], [ %inc568.31, %for.body564 ] |
| 145 | + %inc568.31 = add nuw nsw i32 %i560.0801, 32 |
| 146 | + %exitcond839.not.31 = icmp eq i32 %inc568.31, 4096 |
| 147 | + br i1 %exitcond839.not.31, label %if.end570, label %for.body564 |
| 148 | + |
| 149 | +if.end570: ; preds = %for.body564, %if.else407 |
| 150 | + unreachable |
| 151 | + |
| 152 | +cleanup.cont: ; preds = %if.end15, %if.end |
| 153 | + ret void |
| 154 | +} |
| 155 | + |
| 156 | +attributes #0 = { "uniform-work-group-size"="true" } |
0 commit comments