1; RUN: llc -mtriple=hexagon < %s 2; REQUIRES: asserts 3 4; Test that the pipeliner doesn't assert in the addLoopCarriedDependence 5; function with the message "What happened to the chain edge?". The bug is that 6; the pass wasn't checking for a sequence of chain edges from the load to the 7; store. The code assumed a single chain edge only. 8 9%0 = type { ptr, [2 x [2 x %39]], [2 x [2 x %39]], [2 x i8], [2 x i8], [2 x i8], [2 x i8], i32, i32 } 10%1 = type { %0, %2, %3, %15, ptr, ptr, %99, ptr, ptr, %299, %303, %304, %304, %307, i8, i8, i32 } 11%2 = type <{ ptr, i8, [3 x i8] }> 12%3 = type { ptr, i8, i32, i8, ptr, %8, %307, ptr, [10 x ptr], [10 x i8], %307 } 13%4 = type { ptr, %6 } 14%5 = type opaque 15%6 = type { %7 } 16%7 = type { i64 } 17%8 = type { %9, ptr, [16 x i32], ptr, ptr, %307, %307 } 18%9 = type { [16 x %11], i16, i8, ptr, %11 } 19%10 = type { i64, [8 x i8] } 20%11 = type { %307 } 21%12 = type { %10, %13, %13, i32, i32, i32, ptr, ptr, ptr, ptr, i32, ptr } 22%13 = type { %14 } 23%14 = type { i16, i16, i32, i32, i32 } 24%15 = type <{ ptr, i8, [3 x i8] }> 25%16 = type { ptr, i32, i32, i8, i16, i16, i8, %17, i32, %22, %27, [4 x i8], [6 x [512 x %28]], %94, [6 x %29], [6 x ptr], %94, [7 x %95], [7 x ptr], [7 x ptr], ptr, %97, [8 x i8] } 26%17 = type { ptr, %21, %21, i32, i8 } 27%18 = type { %19, %19, %20 } 28%19 = type { i32, i16, i16 } 29%20 = type { i32, i32, i32 } 30%21 = type { i32, i32, i32, i32 } 31%22 = type { ptr, %24 } 32%23 = type { i8, %10 } 33%24 = type { %25 } 34%25 = type { %26 } 35%26 = type { i32 } 36%27 = type { i32, i32, i32, ptr } 37%28 = type { i16, i16, i16, i16 } 38%29 = type <{ ptr, ptr, i32, i16, [2 x i8], %24, ptr, i32, i8, [3 x i8], i32, %30, i8, i8, [2 x i8] }> 39%30 = type { %31, %44 } 40%31 = type { ptr } 41%32 = type { ptr, %24, i16, i16, i16, ptr, i16, i16, i8, i8, i32 } 42%33 = type { %34, [5 x %35], %36 } 43%34 = type { i32, i8 } 44%35 = type { [2 x i32] } 45%36 = type { i32, i8 } 46%37 = type <{ %38, i16, i16, i8, [3 x i8], ptr, ptr, ptr, [4 x i8], i64, i16, i8, i8, i16, i16, i32, i8, [3 x i8] }> 47%38 = type { ptr, i8, %40, i8, %41 } 48%39 = type { i64 } 49%40 = type { i32, i32, %24, %24, i32, i32, i16, i16, i16, i8, i8, i8, i8, i16 } 50%41 = type { i8, ptr, ptr, i32, i8, ptr } 51%42 = type { i16, i16, i16 } 52%43 = type { i64, [280 x i8] } 53%44 = type { ptr } 54%45 = type { %38, ptr, i16, i16, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, %46, i8, i8, i8, %48, i8, i8, i16, i16, i8, i8, i8, ptr, ptr, ptr, ptr, i16, i16, i8, ptr, i8, i8, i8, i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8, i8, ptr, i8, i32, i8, i8, i32, i32, i32, i32, %17, i32 } 55%46 = type { %47 } 56%47 = type { i8 } 57%48 = type { %49 } 58%49 = type { i16 } 59%50 = type { i16, i16, %51, %53, i16, i16, i16, i16, [39 x i16], [3 x i16], [39 x i16], [5 x i16], %54, %57, %60, i8, %63, %66 } 60%51 = type { %52 } 61%52 = type { i16 } 62%53 = type { i16 } 63%54 = type { i32, i32, i32, i32, i32, i8, i8, i8, i8, %55 } 64%55 = type { %56 } 65%56 = type { i8, i8 } 66%57 = type { %58, [2 x %59] } 67%58 = type { i32 } 68%59 = type { i32 } 69%60 = type { i24, i16, [4 x i16], [2 x %61] } 70%61 = type { [4 x %62], i16, i8 } 71%62 = type { i16, i8, i32 } 72%63 = type { %64, i16, [3 x %65], [3 x %65] } 73%64 = type { i8 } 74%65 = type { i8, i16, i16 } 75%66 = type { i8, i32, i32, i16, i16 } 76%67 = type { %68, i8, i8 } 77%68 = type { i32, i32 } 78%69 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, %70, i32, i16, i16, i16, [22 x i16], %71, %72, %82, %85, %87, i8, i16 } 79%70 = type { i16 } 80%71 = type { %20, %21, %21, i32, i32, i32, i8 } 81%72 = type { %73 } 82%73 = type { i16, %74, i16, %75, %76, %77, %78, %79, %80 } 83%74 = type { i8, i8 } 84%75 = type { i16 } 85%76 = type { i16 } 86%77 = type { i16 } 87%78 = type { i16 } 88%79 = type { i16 } 89%80 = type { %81, i16, i16, i16, i16 } 90%81 = type { i16, i16 } 91%82 = type { i16, i16, i32, i32, i32, i32, i16, i16, i16, i16, i16, i16, %83, i16, i16, i16, i16, i16, i32, i32, %84, i32, i32 } 92%83 = type { i16 } 93%84 = type { i32 } 94%85 = type { %86, i32, i32, i32, [5 x i64] } 95%86 = type { i32 } 96%87 = type { %88, [4 x i16], [4 x i16], i16, %89, %90 } 97%88 = type { i32 } 98%89 = type { [4 x i32], [4 x i32], [4 x i16], [4 x i16], [4 x i16], [4 x i16], [4 x i16], [4 x i16] } 99%90 = type { i8, i8, i8, [2 x i32], [2 x i32] } 100%91 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } 101%92 = type { i16, i16, [1024 x i16], i8, i8 } 102%93 = type { i16, i16, [8 x i16] } 103%94 = type { i32, i32, i32, ptr } 104%95 = type { %24, %24, ptr, i8, i32, i32 } 105%96 = type { i32, i32, i32, ptr } 106%97 = type { i8, %94, [10 x %96], [10 x ptr] } 107%98 = type opaque 108%99 = type { %100 } 109%100 = type { ptr, %101 } 110%101 = type { %102, %102 } 111%102 = type { i8, i8, %103 } 112%103 = type { %104 } 113%104 = type { i32, i32 } 114%105 = type <{ i8, [3 x i8], %106, [4 x i8], [512 x i64], ptr, ptr, ptr, ptr, ptr, ptr, ptr, %196, [4008 x i8], %197, %18, [228 x i8], %253, %258, %266, %267, i8, i8, i8, [5 x i8], %268, %278, %279, [4428 x i8] }> 115%106 = type { [16 x i8], i8, i16, ptr, ptr, i8, i32, i8 } 116%107 = type <{ [128 x %108], ptr, i16, [2 x i8], ptr, %150, %153, ptr, ptr, i8, [7 x i8] }> 117%108 = type { i16, i16 } 118%109 = type { [2 x [1024 x i8]], %110, [5 x %43], %125, [2 x %133], [28 x i8], %138, i8, [64 x i64], [2 x %92], %143, [10 x i8], i8, [31 x i8], [32 x i8], %150, [12 x i8], [18 x i8], [14 x i8] } 119%110 = type { %111, %113, [16 x %50], [6 x %115], [3 x %116], [6 x %117], [3 x %118], [3 x %119], [3 x %120], [3 x %121], %93, i8, [3 x %122], [3 x %91], %124 } 120%111 = type { ptr, i16, i16, [8 x %112] } 121%112 = type { i16, i32, i32, i32, i32, i16, i8, i32, i16, i16 } 122%113 = type { ptr, i16, i16, [3 x %114] } 123%114 = type { i16, i16, i16, i16, i16, i32, i32, i16, i16, i16, i16, i16, i16, i32, i8, i32 } 124%115 = type { [5 x %69] } 125%116 = type { i16, i16, i16, [12 x i8], [12 x i32], i8, [12 x i32], [12 x i16] } 126%117 = type { i16, i16, i16, [12 x i8], [12 x i32], i8, [12 x i32], [12 x i16] } 127%118 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, %72, %82 } 128%119 = type { i16, i16, [2 x i16], i16, i16, [19 x i16], i32 } 129%120 = type { i16, i16, [8 x i32] } 130%121 = type { i16, i16, [10 x i32] } 131%122 = type { i16, i32, [10 x %123] } 132%123 = type { i32, i32, i32, i32, i16, i16, i8, i16, i8, i8, i8 } 133%124 = type { i32, i32, i16, i32, i64, i16, i16, i32, i32 } 134%125 = type { [3 x %126], %128, %130, %132 } 135%126 = type { %127 } 136%127 = type { [7 x %67], %33, [3 x %67] } 137%128 = type { %129 } 138%129 = type { i32 } 139%130 = type { %131 } 140%131 = type { i32 } 141%132 = type { i32 } 142%133 = type { i16, [26 x %134] } 143%134 = type { %135, %136, %137 } 144%135 = type { i32 } 145%136 = type { i16 } 146%137 = type { i16 } 147%138 = type { i16, i16, %139, [24 x i8], %141, i8, i8, i16, [24 x i8] } 148%139 = type { i8, %140, [25 x i8] } 149%140 = type { i16, i16, i16, i16 } 150%141 = type { %142 } 151%142 = type { i16, [2 x i8] } 152%143 = type { %144 } 153%144 = type { i16 } 154%145 = type { %146, %147, %148, %149 } 155%146 = type { i32 } 156%147 = type { i32 } 157%148 = type { i32 } 158%149 = type { i32 } 159%150 = type { %151, %152 } 160%151 = type { i32, i32, i32, i32, i32, i16, i16, i16, i16, i8 } 161%152 = type { i8, i16, i8, i8, [4 x i32], i8, i8, i8, i16, [2 x i16], [2 x i16], [5 x i16], i8 } 162%153 = type <{ i8, [3 x i8], ptr, [2 x %160], i16, [2 x i8], [2 x %160], i16, [2 x i8], [2 x %160], i16, [2 x i8], [4 x %161], i16, i16, [2 x %162], i16, [2 x i8], ptr, [2 x %172], i16, [2 x i8], [24 x %173], i16, [2 x i8], [24 x %176], i16, [2 x i8], [24 x %176], i16, [2 x i8], [2 x %177], i16, [2 x i8], [2 x %174], i16, [2 x i8], [2 x %175], i16, [2 x i8], [24 x %176], i16, [2 x i8], %177, %177, [14 x %45], i16, [2 x i8], [14 x %160], i16, [2 x i8], ptr, [4 x i8], [8 x %37], i16, [4 x %42], [2 x i8], [8 x %32], i16, [4 x i16], [2 x i8], %179, i16, i16, i16, i16, i16, i16, i16, [2 x i8], [3 x i64], i16, i8, i8, i16, [2 x i8] }> 163%154 = type { i16, i16, %155 } 164%155 = type { %156 } 165%156 = type { i16, %157, [2 x %158], i8, i16, i8, [12 x %159] } 166%157 = type { i8, i8, i8 } 167%158 = type { i16, i16 } 168%159 = type { i16, i16, i32, i8, i32, i32, i16, i8, i8, i8, i8, i32 } 169%160 = type { ptr, %24, i16, i16, i16, i8, i32, i8, i8, i8, i8, i32, i32, i32 } 170%161 = type <{ i16, [2 x i8], %24, i32, i32, i16, i16, i8, [3 x i8] }> 171%162 = type <{ %38, i32, i16, i16, i8, i8, i16, %163, i16, ptr, ptr, i8, i8, i8, i8, i16, i8, i8, i8, i8, i8, i8, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i16, i8, [5 x i8], [164 x %39], ptr, [4 x i8] }> 172%163 = type { i16 } 173%164 = type { [131 x i64], [232 x i8], [131 x i32], ptr, i16, i32, i8, i8, i8, i8, %163, i8, i8, ptr, i8, [219 x i8] } 174%165 = type { ptr, i32, i16, i16, i8, i8, %39, i64, i32, i32, i8, %166, i8, %167 } 175%166 = type { i8, i8 } 176%167 = type { i32, i32, i32, i8 } 177%168 = type { i32, i64, i64, i32, i32, i32, i32, i32, i32, i64, i32, i32, i16, i16, i32, i32, i32, i32, i16, i8, i64, i8, i8, i8 } 178%169 = type { ptr, ptr, %163, i8, i32, i32, i32, i16, i16, i32, i8, i8, i8, i8, i16, i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, ptr } 179%170 = type { ptr, i32, i32, i16, i16, i8, i8, i8 } 180%171 = type { i64, i64, i64, i64, i32, i32, i32, i32, i32, i32, i32, i32, i16, i32, i32, i16, i32, i16, [20 x i16], i16, i16, i8, i8, i8, i8, [78 x i8], [78 x i8], [39 x i8], i8, i32, i32 } 181%172 = type { %38, ptr, i16, i16, ptr, ptr, i16, i16, i8, ptr, ptr, ptr, i16, i32, i32, ptr, ptr, i8, i8, %46, i8, i8, i8, ptr, ptr, %145, i16, i8, i8, i8, i16, i32, i16, %307 } 182%173 = type <{ %38, i16, i16, i16, i8, i8, i16, i16, ptr, ptr, ptr, ptr, i8, i8, [2 x i8], ptr, i8, i8, i8, i8, ptr, i8, [3 x i8] }> 183%174 = type { %24 } 184%175 = type { %24 } 185%176 = type <{ %160, i8, [3 x i8] }> 186%177 = type { i32, %24, i32 } 187%178 = type { [8 x i64] } 188%179 = type { i32, i32, %24, %24, i32, i32 } 189%180 = type opaque 190%181 = type { i16, ptr, [14 x i32], [8 x i32], i32, i32, ptr } 191%182 = type { ptr, ptr, ptr, [2 x [4 x %178]], i8, i8, i8, [10 x %185], %307, %186, i32, i32, i8, i16, i16, i32, i32, ptr, [9 x i8], ptr, %194, [2 x %195], ptr, ptr } 192%183 = type { [5 x %39], [24 x i8], [1 x [256 x %39]] } 193%184 = type { [2 x [12 x %92]] } 194%185 = type { i32, i32, ptr, %307 } 195%186 = type { [114 x [22 x i8]], [2 x [22 x i8]], %187, %189 } 196%187 = type { [4 x [4 x [114 x i8]]], [4 x %188], [88 x i8], [4 x [114 x i8]] } 197%188 = type { [4 x [116 x [3 x i8]]] } 198%189 = type { [4 x [8 x i8]], [4 x [8 x [3 x i8]]], [8 x i8] } 199%190 = type { %191, i16, i32, i16, [22 x i8] } 200%191 = type { %192 } 201%192 = type { %193 } 202%193 = type { [1024 x i16], [1024 x i16] } 203%194 = type { i16, i16, i16, %30, ptr, ptr, i16, i8, %24, %39 } 204%195 = type <{ i8, i8, i16, %24, i8, i8, i8, i8, i16, [2 x i8], ptr, i8, i8, [2 x i8] }> 205%196 = type { i32, i8, i8, i8, i8, i8, i8, i8, i8 } 206%197 = type <{ %198, %200, %203, %206, [20 x i8], %207, %236, i16, i16, i8, [3 x i8], [4 x i32], [4 x i32], [8 x [4 x i32]], [8 x i32], [4 x i32], [22 x i32], i8, i8, i8, [2 x i8], [2 x i8], i8, ptr, [44 x i32], [8 x i32], [8 x i32], [2508 x i8], [44 x i8], [456 x i8], [456 x i8], [8 x i8], [8 x i8], i16, i8, i8, i16, i16, i16, [2 x i8], %237, %237, %237, [5 x %238], [5 x %239], %240, i8, i8, [2 x i8], %251, %251, [4 x i8], [8 x [11 x i32]], %307, ptr, ptr, ptr, ptr, %241, [4 x i8], %242, %243, %307, %249, %250, [10 x %251], %251, [4416 x i8], [5 x [5 x [352 x i8]]], [5 x i8], [7579 x i8] }> 207%198 = type { [8 x %199] } 208%199 = type { i16, i8, i8 } 209%200 = type <{ i64, i8, [3 x i8], i32, i32, i32, %201, %201, ptr, i32, i32, i32, i8, i8, i8, [5 x i8], [57 x %39], %202, [7 x i8] }> 210%201 = type { i64, [57 x %39] } 211%202 = type { i8 } 212%203 = type <{ [4 x %204], [4 x %204], %205, %205, i8, [5 x i8] }> 213%204 = type { [4 x [2 x i64]], [12 x i16], i8 } 214%205 = type { i8 } 215%206 = type { i32 } 216%207 = type { [22 x [114 x i8]], [2 x [22 x i8]], [5 x %208], %43, %209, %211, %232, %233, [29 x %210], i32, i32, i32, %234, [4 x i8], i8, i8, i32, [24 x i8] } 217%208 = type { [5 x %39], [164 x %39], [144 x float], [2 x [2 x %39]], i32, [116 x i8], i8, i8 } 218%209 = type { [87 x %39], ptr, i32, i32, i32, [2 x i8], i16, i32, i16, i8, i8 } 219%210 = type { i32 } 220%211 = type { %212, %231 } 221%212 = type { %213 } 222%213 = type { %214, %215, %215, %217, %230, [32 x %39] } 223%214 = type { %39, ptr, ptr, ptr, i8 } 224%215 = type { %216 } 225%216 = type { [2 x [16 x i64]], [2 x [16 x i32]] } 226%217 = type { %218 } 227%218 = type { %219, %222, %223, %225, %228, %229 } 228%219 = type { %220, %221, [30 x %39], ptr } 229%220 = type { [150 x %39], [150 x i16] } 230%221 = type { [5 x %39], [5 x i16] } 231%222 = type { [48 x i32], [48 x i32], [32 x %39], [5 x i16], [5 x i32] } 232%223 = type { ptr, ptr, i16, i32, i8, ptr } 233%224 = type { i32, i32, i32, i8 } 234%225 = type { ptr, i8, ptr, i8, ptr, ptr, ptr, i8, i32, i32, i32, i8, i8, i32, ptr } 235%226 = type { i8, i8, i8, i32, i8, i32 } 236%227 = type { ptr, ptr, i32, i8, i8, i8, i8, i8 } 237%228 = type { [87 x %39], [164 x %39], [167 x %39] } 238%229 = type { ptr, i8, i8 } 239%230 = type { [29 x %39] } 240%231 = type { [13 x %39], [13 x %210] } 241%232 = type { ptr, i8, i8, i8, i8, ptr, i8, i8, ptr, i8, i8, ptr, i8, i8 } 242%233 = type { i32, i32, ptr } 243%234 = type { %235 } 244%235 = type { i16 } 245%236 = type <{ [57 x %39], [57 x %39], [2 x i8], [2 x i8], [2 x i32], i8, [3 x i8], ptr, [4 x i8] }> 246%237 = type { i32, i32, i32 } 247%238 = type { ptr, ptr, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, %46, i8, i8, i8, i8, i8, i16, i16, i16, i16, i8, i8, i16, i16, i8, i32, i8, i8, i32, i32, i8, i8, i16, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8], i32, i8, i8, i16, i8, i8, i32, i8, i16, %145, i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, ptr, %17, [2 x i8], ptr, ptr } 248%239 = type { ptr, ptr, ptr, ptr, i16, i16, i16, i16, i16, i16, i8, [4 x i8], [2 x i16], %48, i16, i16, i16, i16, [2 x i16], i16, i32, i32, i8, i8, i8, i8, i8, i8, i16, i16, [4 x ptr], ptr, i8, i8, i8, ptr, ptr, ptr, ptr, i8, i8, ptr, i8, ptr, i32 } 249%240 = type { [2 x [16 x %39]], [265 x %39], [1368 x %210] } 250%241 = type { i32, i32, i32, i32, i8, i32, i32, i32, i32, i32 } 251%242 = type <{ %43, [456 x i8], [228 x i8], [456 x i8], [4 x i8] }> 252%243 = type { ptr, i32, i32, i32, i32, i32, i32, i8, i8, ptr, %247, %248 } 253%244 = type { [128 x %245], [2048 x i16] } 254%245 = type { %246, [115 x i64] } 255%246 = type { i16, i8, i32 } 256%247 = type { i32, i32, i32, i32, i8, i8, i8, i8 } 257%248 = type { i32, i32, i32, i32, i8, i8, i32 } 258%249 = type { ptr, i8, i8, [179 x %210], [20 x %210], i16 } 259%250 = type { [8 x i16], [72 x i8], [120 x i8], [3 x i32] } 260%251 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i16, i16, i8, i8, i8, %48, i8, i32, i8, ptr, [4 x %252], [8 x i32], i8, ptr, ptr, ptr, [8 x i8], ptr, i32, i32, i32, i8, i8, i8, i8, ptr, ptr, i8, i8, i8, i8, i8, [2 x i8], i8, [36 x i8], [36 x i8], i32 } 261%252 = type { ptr, i8 } 262%253 = type { [5 x %254], i8, i8, i8, [114 x i8], ptr, ptr, [48 x i8], %255, ptr, i16, i16, [4 x i16], [4 x i16], i16, ptr, ptr, ptr, [216 x i8] } 263%254 = type { ptr, ptr, i32, i8 } 264%255 = type { [16 x %256], %257, [64 x i8] } 265%256 = type { i64 } 266%257 = type { [8 x i64] } 267%258 = type { i32, %170, [8 x i8], %171, %172, [212 x i8], %164, i8, %165, %168, %169, [100 x %39], ptr, i32, i16, [786 x i64], i16, [2 x i8], [2 x %259], i8, %307, ptr, ptr, ptr, %261, [136 x i8] } 268%259 = type <{ %40, %24, i32, i8, [3 x i8] }> 269%260 = type { ptr, i8, ptr, i32, i32, i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, ptr } 270%261 = type { [2 x %262], %39, %39, %263, [66 x %39], %264, %265, [5 x i16], i32, i8, i16, i16, i32, i16, i16 } 271%262 = type { [170 x %39] } 272%263 = type { [164 x %39] } 273%264 = type { [162 x %210] } 274%265 = type { [312 x %39] } 275%266 = type { ptr, ptr, ptr } 276%267 = type { ptr, ptr, ptr } 277%268 = type { %269, i32, i8, [24 x %277], ptr, i32, i32, ptr, ptr, [24 x i32], ptr, [8 x i16], %96, [6 x ptr], %307, ptr, ptr, ptr, [4 x i8] } 278%269 = type <{ [2 x %270], [2 x %30], [8 x %30], [24 x %30], [2 x ptr], i8, i8, [2 x i8], [2 x ptr], i8, [3 x i8], i32, i32, i32, i16, i16, i32, i8, i8, i16, i16, i8, i8, i8, i8, i8, [8 x i8], i8, [8 x %276], [8 x %69], [8 x %50], i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, [8 x i16], [8 x i16], ptr, ptr, i8, i8, i16, i8, [3 x i8], %24, i8, i8, [2 x i8], %24, ptr, i8, i8, i8, i8, i8, i8, i8, i8, ptr, ptr }> 279%270 = type { ptr, [16 x %30], %30, [8 x %30], [1 x %30], [2 x %158], i8, i8, %30, %30, ptr, i16, ptr } 280%271 = type { i16, %272, i16, [4 x %273], i16, [4 x %275], i32, i32, i32, i32, i8, i8, i32, i32 } 281%272 = type { i16 } 282%273 = type { %274, ptr } 283%274 = type { i16 } 284%275 = type { i16, i16, i32, i32, i8, i16, i16, i8 } 285%276 = type { i8, ptr } 286%277 = type { i8, %30, i8, i8, i8, i32 } 287%278 = type { ptr, ptr } 288%279 = type <{ %280, %280, [16 x %282], ptr, %24, i32, %307, %283, i32, %289, i8, i8, i8, i8, i8, [3 x i8], i32, i32, %24, i8, i8, i8, i8 }> 289%280 = type { %281 } 290%281 = type { ptr, ptr } 291%282 = type <{ %281, %24, %24, %40, i8, [3 x i8] }> 292%283 = type { i32, %284, i32, %286, %287 } 293%284 = type { i8, [5 x %285] } 294%285 = type { i8, i8 } 295%286 = type { i16, i16 } 296%287 = type { i32, %288 } 297%288 = type { i32, i32 } 298%289 = type { %290 } 299%290 = type { %291, ptr, i32, i32, i32 } 300%291 = type { %292, %294 } 301%292 = type { %293 } 302%293 = type { i8 } 303%294 = type { i8 } 304%295 = type { i8, i8, ptr, [16 x %296], i8, ptr, ptr, ptr, %260, i8, i8, i8, i8, i8, i8, ptr } 305%296 = type { i8, i8, %297, i16 } 306%297 = type { i8, %298, ptr } 307%298 = type { i8 } 308%299 = type { %300, %302 } 309%300 = type { %301, i32 } 310%301 = type { i32, i32, i32, i32, i64, i32, i32, i32, i32, i32, i8, [4 x i32], [4 x i32] } 311%302 = type { i32, i32, i32, i32, i32, [4 x i32] } 312%303 = type { i32, i32, i8 } 313%304 = type { %305, i32, i8 } 314%305 = type { %306 } 315%306 = type { i32 } 316%307 = type { i32 } 317 318define void @f0(ptr %a0) align 2 #0 { 319b0: 320 br label %b1 321 322b1: ; preds = %b1, %b0 323 %v0 = phi i32 [ %v7, %b1 ], [ 0, %b0 ] 324 %v1 = getelementptr inbounds %0, ptr %a0, i32 0, i32 2, i32 undef, i32 %v0 325 %v3 = load i64, ptr %v1, align 8 326 %v4 = call i64 @llvm.hexagon.S2.brevp(i64 %v3) #1 327 store i64 %v4, ptr %v1, align 8 328 %v6 = getelementptr inbounds [2 x i32], ptr %v1, i32 0, i32 1 329 store i32 0, ptr %v6, align 4 330 %v7 = add nuw nsw i32 %v0, 1 331 %v8 = icmp eq i32 %v7, 2 332 br i1 %v8, label %b2, label %b1 333 334b2: ; preds = %b1 335 ret void 336} 337 338; Function Attrs: nounwind readnone 339declare i64 @llvm.hexagon.S2.brevp(i64) #0 340 341attributes #0 = { nounwind "target-cpu"="hexagonv55" } 342attributes #1 = { nounwind readnone } 343