; RUN: llc -march=amdgcn -mcpu=SI < %s -verify-machineinstrs | FileCheck -check-prefix=SI %s ; RUN: llc -march=amdgcn -mcpu=tonga < %s -verify-machineinstrs | FileCheck -check-prefix=SI %s ; If this occurs it is likely due to reordering and the restore was ; originally supposed to happen before SI_END_CF. ; SI: s_or_b64 exec, exec, [[SAVED:s\[[0-9]+:[0-9]+\]|[a-z]+]] ; SI-NOT: v_readlane_b32 [[SAVED]] define amdgpu_ps void @main() { main_body: %0 = call float @llvm.SI.load.const(<16 x i8> undef, i32 16) %1 = call float @llvm.SI.load.const(<16 x i8> undef, i32 32) %2 = call float @llvm.SI.load.const(<16 x i8> undef, i32 80) %3 = call float @llvm.SI.load.const(<16 x i8> undef, i32 84) %4 = call float @llvm.SI.load.const(<16 x i8> undef, i32 88) %5 = call float @llvm.SI.load.const(<16 x i8> undef, i32 96) %6 = call float @llvm.SI.load.const(<16 x i8> undef, i32 100) %7 = call float @llvm.SI.load.const(<16 x i8> undef, i32 104) %8 = call float @llvm.SI.load.const(<16 x i8> undef, i32 112) %9 = call float @llvm.SI.load.const(<16 x i8> undef, i32 116) %10 = call float @llvm.SI.load.const(<16 x i8> undef, i32 120) %11 = call float @llvm.SI.load.const(<16 x i8> undef, i32 128) %12 = call float @llvm.SI.load.const(<16 x i8> undef, i32 132) %13 = call float @llvm.SI.load.const(<16 x i8> undef, i32 136) %14 = call float @llvm.SI.load.const(<16 x i8> undef, i32 144) %15 = call float @llvm.SI.load.const(<16 x i8> undef, i32 148) %16 = call float @llvm.SI.load.const(<16 x i8> undef, i32 152) %17 = call float @llvm.SI.load.const(<16 x i8> undef, i32 160) %18 = call float @llvm.SI.load.const(<16 x i8> undef, i32 164) %19 = call float @llvm.SI.load.const(<16 x i8> undef, i32 168) %20 = call float @llvm.SI.load.const(<16 x i8> undef, i32 176) %21 = call float @llvm.SI.load.const(<16 x i8> undef, i32 180) %22 = call float @llvm.SI.load.const(<16 x i8> undef, i32 184) %23 = call float @llvm.SI.load.const(<16 x i8> undef, i32 192) %24 = call float @llvm.SI.load.const(<16 x i8> undef, i32 196) %25 = call float @llvm.SI.load.const(<16 x i8> undef, i32 200) %26 = call float @llvm.SI.load.const(<16 x i8> undef, i32 208) %27 = call float @llvm.SI.load.const(<16 x i8> undef, i32 212) %28 = call float @llvm.SI.load.const(<16 x i8> undef, i32 216) %29 = call float @llvm.SI.load.const(<16 x i8> undef, i32 224) %30 = call float @llvm.SI.load.const(<16 x i8> undef, i32 228) %31 = call float @llvm.SI.load.const(<16 x i8> undef, i32 232) %32 = call float @llvm.SI.load.const(<16 x i8> undef, i32 240) %33 = call float @llvm.SI.load.const(<16 x i8> undef, i32 244) %34 = call float @llvm.SI.load.const(<16 x i8> undef, i32 248) %35 = call float @llvm.SI.load.const(<16 x i8> undef, i32 256) %36 = call float @llvm.SI.load.const(<16 x i8> undef, i32 260) %37 = call float @llvm.SI.load.const(<16 x i8> undef, i32 264) %38 = call float @llvm.SI.load.const(<16 x i8> undef, i32 272) %39 = call float @llvm.SI.load.const(<16 x i8> undef, i32 276) %40 = call float @llvm.SI.load.const(<16 x i8> undef, i32 280) %41 = call float @llvm.SI.load.const(<16 x i8> undef, i32 288) %42 = call float @llvm.SI.load.const(<16 x i8> undef, i32 292) %43 = call float @llvm.SI.load.const(<16 x i8> undef, i32 296) %44 = call float @llvm.SI.load.const(<16 x i8> undef, i32 304) %45 = call float @llvm.SI.load.const(<16 x i8> undef, i32 308) %46 = call float @llvm.SI.load.const(<16 x i8> undef, i32 312) %47 = call float @llvm.SI.load.const(<16 x i8> undef, i32 320) %48 = call float @llvm.SI.load.const(<16 x i8> undef, i32 324) %49 = call float @llvm.SI.load.const(<16 x i8> undef, i32 328) %50 = call float @llvm.SI.load.const(<16 x i8> undef, i32 336) %51 = call float @llvm.SI.load.const(<16 x i8> undef, i32 340) %52 = call float @llvm.SI.load.const(<16 x i8> undef, i32 344) %53 = call float @llvm.SI.load.const(<16 x i8> undef, i32 352) %54 = call float @llvm.SI.load.const(<16 x i8> undef, i32 356) %55 = call float @llvm.SI.load.const(<16 x i8> undef, i32 360) %56 = call float @llvm.SI.load.const(<16 x i8> undef, i32 368) %57 = call float @llvm.SI.load.const(<16 x i8> undef, i32 372) %58 = call float @llvm.SI.load.const(<16 x i8> undef, i32 376) %59 = call float @llvm.SI.load.const(<16 x i8> undef, i32 384) %60 = call float @llvm.SI.load.const(<16 x i8> undef, i32 388) %61 = call float @llvm.SI.load.const(<16 x i8> undef, i32 392) %62 = call float @llvm.SI.load.const(<16 x i8> undef, i32 400) %63 = call float @llvm.SI.load.const(<16 x i8> undef, i32 404) %64 = call float @llvm.SI.load.const(<16 x i8> undef, i32 408) %65 = call float @llvm.SI.load.const(<16 x i8> undef, i32 416) %66 = call float @llvm.SI.load.const(<16 x i8> undef, i32 420) br label %LOOP LOOP: ; preds = %ENDIF2795, %main_body %temp894.0 = phi float [ 0.000000e+00, %main_body ], [ %temp894.1, %ENDIF2795 ] %temp18.0 = phi float [ undef, %main_body ], [ %temp18.1, %ENDIF2795 ] %tid = call i32 @llvm.amdgcn.mbcnt.lo(i32 -1, i32 0) #2 %67 = icmp sgt i32 %tid, 4 br i1 %67, label %ENDLOOP, label %ENDIF ENDLOOP: ; preds = %ELSE2566, %LOOP %one.sub.a.i = fsub float 1.000000e+00, %0 %one.sub.ac.i = fmul float %one.sub.a.i, undef %result.i = fadd float fmul (float undef, float undef), %one.sub.ac.i call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 0, float undef, float %result.i, float undef, float 1.000000e+00) ret void ENDIF: ; preds = %LOOP %68 = fsub float %2, undef %69 = fsub float %3, undef %70 = fsub float %4, undef %71 = fmul float %68, 0.000000e+00 %72 = fmul float %69, undef %73 = fmul float %70, undef %74 = fsub float %6, undef %75 = fsub float %7, undef %76 = fmul float %74, undef %77 = fmul float %75, 0.000000e+00 %78 = call float @llvm.minnum.f32(float %73, float %77) %79 = call float @llvm.maxnum.f32(float %71, float 0.000000e+00) %80 = call float @llvm.maxnum.f32(float %72, float %76) %81 = call float @llvm.maxnum.f32(float undef, float %78) %82 = call float @llvm.minnum.f32(float %79, float %80) %83 = call float @llvm.minnum.f32(float %82, float undef) %84 = fsub float %14, undef %85 = fsub float %15, undef %86 = fsub float %16, undef %87 = fmul float %84, undef %88 = fmul float %85, undef %89 = fmul float %86, undef %90 = fsub float %17, undef %91 = fsub float %18, undef %92 = fsub float %19, undef %93 = fmul float %90, 0.000000e+00 %94 = fmul float %91, undef %95 = fmul float %92, undef %96 = call float @llvm.minnum.f32(float %88, float %94) %97 = call float @llvm.maxnum.f32(float %87, float %93) %98 = call float @llvm.maxnum.f32(float %89, float %95) %99 = call float @llvm.maxnum.f32(float undef, float %96) %100 = call float @llvm.maxnum.f32(float %99, float undef) %101 = call float @llvm.minnum.f32(float %97, float undef) %102 = call float @llvm.minnum.f32(float %101, float %98) %103 = fsub float %30, undef %104 = fsub float %31, undef %105 = fmul float %103, 0.000000e+00 %106 = fmul float %104, 0.000000e+00 %107 = call float @llvm.minnum.f32(float undef, float %105) %108 = call float @llvm.maxnum.f32(float undef, float %106) %109 = call float @llvm.maxnum.f32(float undef, float %107) %110 = call float @llvm.maxnum.f32(float %109, float undef) %111 = call float @llvm.minnum.f32(float undef, float %108) %112 = fsub float %32, undef %113 = fsub float %33, undef %114 = fsub float %34, undef %115 = fmul float %112, 0.000000e+00 %116 = fmul float %113, undef %117 = fmul float %114, undef %118 = fsub float %35, undef %119 = fsub float %36, undef %120 = fsub float %37, undef %121 = fmul float %118, undef %122 = fmul float %119, undef %123 = fmul float %120, undef %124 = call float @llvm.minnum.f32(float %115, float %121) %125 = call float @llvm.minnum.f32(float %116, float %122) %126 = call float @llvm.minnum.f32(float %117, float %123) %127 = call float @llvm.maxnum.f32(float %124, float %125) %128 = call float @llvm.maxnum.f32(float %127, float %126) %129 = fsub float %38, undef %130 = fsub float %39, undef %131 = fsub float %40, undef %132 = fmul float %129, 0.000000e+00 %133 = fmul float %130, undef %134 = fmul float %131, undef %135 = fsub float %41, undef %136 = fsub float %42, undef %137 = fsub float %43, undef %138 = fmul float %135, undef %139 = fmul float %136, undef %140 = fmul float %137, undef %141 = call float @llvm.minnum.f32(float %132, float %138) %142 = call float @llvm.minnum.f32(float %133, float %139) %143 = call float @llvm.minnum.f32(float %134, float %140) %144 = call float @llvm.maxnum.f32(float %141, float %142) %145 = call float @llvm.maxnum.f32(float %144, float %143) %146 = fsub float %44, undef %147 = fsub float %45, undef %148 = fsub float %46, undef %149 = fmul float %146, 0.000000e+00 %150 = fmul float %147, 0.000000e+00 %151 = fmul float %148, undef %152 = fsub float %47, undef %153 = fsub float %48, undef %154 = fsub float %49, undef %155 = fmul float %152, undef %156 = fmul float %153, 0.000000e+00 %157 = fmul float %154, undef %158 = call float @llvm.minnum.f32(float %149, float %155) %159 = call float @llvm.minnum.f32(float %150, float %156) %160 = call float @llvm.minnum.f32(float %151, float %157) %161 = call float @llvm.maxnum.f32(float %158, float %159) %162 = call float @llvm.maxnum.f32(float %161, float %160) %163 = fsub float %50, undef %164 = fsub float %51, undef %165 = fsub float %52, undef %166 = fmul float %163, undef %167 = fmul float %164, 0.000000e+00 %168 = fmul float %165, 0.000000e+00 %169 = fsub float %53, undef %170 = fsub float %54, undef %171 = fsub float %55, undef %172 = fdiv float 1.000000e+00, %temp18.0 %173 = fmul float %169, undef %174 = fmul float %170, undef %175 = fmul float %171, %172 %176 = call float @llvm.minnum.f32(float %166, float %173) %177 = call float @llvm.minnum.f32(float %167, float %174) %178 = call float @llvm.minnum.f32(float %168, float %175) %179 = call float @llvm.maxnum.f32(float %176, float %177) %180 = call float @llvm.maxnum.f32(float %179, float %178) %181 = fsub float %62, undef %182 = fsub float %63, undef %183 = fsub float %64, undef %184 = fmul float %181, 0.000000e+00 %185 = fmul float %182, undef %186 = fmul float %183, undef %187 = fsub float %65, undef %188 = fsub float %66, undef %189 = fmul float %187, undef %190 = fmul float %188, undef %191 = call float @llvm.maxnum.f32(float %184, float %189) %192 = call float @llvm.maxnum.f32(float %185, float %190) %193 = call float @llvm.maxnum.f32(float %186, float undef) %194 = call float @llvm.minnum.f32(float %191, float %192) %195 = call float @llvm.minnum.f32(float %194, float %193) %.temp292.7 = select i1 undef, float %162, float undef %temp292.9 = select i1 false, float %180, float %.temp292.7 %.temp292.9 = select i1 undef, float undef, float %temp292.9 %196 = fcmp ogt float undef, 0.000000e+00 %197 = fcmp olt float undef, %195 %198 = and i1 %196, %197 %199 = fcmp olt float undef, %.temp292.9 %200 = and i1 %198, %199 %temp292.11 = select i1 %200, float undef, float %.temp292.9 %tid0 = call i32 @llvm.amdgcn.mbcnt.lo(i32 -1, i32 0) #2 %cmp0 = icmp eq i32 %tid0, 0 br i1 %cmp0, label %IF2565, label %ELSE2566 IF2565: ; preds = %ENDIF %tid1 = call i32 @llvm.amdgcn.mbcnt.lo(i32 -1, i32 0) #2 %cmp1 = icmp eq i32 %tid1, 0 br i1 %cmp1, label %ENDIF2582, label %ELSE2584 ELSE2566: ; preds = %ENDIF %tid2 = call i32 @llvm.amdgcn.mbcnt.lo(i32 -1, i32 0) #2 %tidf = bitcast i32 %tid2 to float %201 = fcmp oeq float %temp292.11, %tidf br i1 %201, label %ENDLOOP, label %ELSE2593 ENDIF2564: ; preds = %ENDIF2594, %ENDIF2588 %temp894.1 = phi float [ undef, %ENDIF2588 ], [ %temp894.2, %ENDIF2594 ] %temp18.1 = phi float [ %218, %ENDIF2588 ], [ undef, %ENDIF2594 ] %202 = fsub float %5, undef %203 = fmul float %202, undef %204 = call float @llvm.maxnum.f32(float undef, float %203) %205 = call float @llvm.minnum.f32(float %204, float undef) %206 = call float @llvm.minnum.f32(float %205, float undef) %207 = fcmp ogt float undef, 0.000000e+00 %208 = fcmp olt float undef, 1.000000e+00 %209 = and i1 %207, %208 %tid3 = call i32 @llvm.amdgcn.mbcnt.lo(i32 -1, i32 0) #2 %tidf3 = bitcast i32 %tid3 to float %210 = fcmp olt float %tidf3, %206 %211 = and i1 %209, %210 br i1 %211, label %ENDIF2795, label %ELSE2797 ELSE2584: ; preds = %IF2565 br label %ENDIF2582 ENDIF2582: ; preds = %ELSE2584, %IF2565 %212 = fadd float %1, undef %213 = fadd float 0.000000e+00, %212 %floor = call float @llvm.floor.f32(float %213) %214 = fsub float %213, %floor %tid4 = call i32 @llvm.amdgcn.mbcnt.lo(i32 -1, i32 0) #2 %cmp4 = icmp eq i32 %tid4, 0 br i1 %cmp4, label %IF2589, label %ELSE2590 IF2589: ; preds = %ENDIF2582 br label %ENDIF2588 ELSE2590: ; preds = %ENDIF2582 br label %ENDIF2588 ENDIF2588: ; preds = %ELSE2590, %IF2589 %215 = fsub float 1.000000e+00, %214 %216 = call float @llvm.sqrt.f32(float %215) %217 = fmul float %216, undef %218 = fadd float %217, undef br label %ENDIF2564 ELSE2593: ; preds = %ELSE2566 %219 = fcmp oeq float %temp292.11, %81 %220 = fcmp olt float %81, %83 %221 = and i1 %219, %220 br i1 %221, label %ENDIF2594, label %ELSE2596 ELSE2596: ; preds = %ELSE2593 %222 = fcmp oeq float %temp292.11, %100 %223 = fcmp olt float %100, %102 %224 = and i1 %222, %223 br i1 %224, label %ENDIF2594, label %ELSE2632 ENDIF2594: ; preds = %ELSE2788, %ELSE2785, %ELSE2782, %ELSE2779, %IF2775, %ELSE2761, %ELSE2758, %IF2757, %ELSE2704, %ELSE2686, %ELSE2671, %ELSE2668, %IF2667, %ELSE2632, %ELSE2596, %ELSE2593 %temp894.2 = phi float [ 0.000000e+00, %IF2667 ], [ 0.000000e+00, %ELSE2671 ], [ 0.000000e+00, %IF2757 ], [ 0.000000e+00, %ELSE2761 ], [ %temp894.0, %ELSE2758 ], [ 0.000000e+00, %IF2775 ], [ 0.000000e+00, %ELSE2779 ], [ 0.000000e+00, %ELSE2782 ], [ %.2848, %ELSE2788 ], [ 0.000000e+00, %ELSE2785 ], [ 0.000000e+00, %ELSE2593 ], [ 0.000000e+00, %ELSE2632 ], [ 0.000000e+00, %ELSE2704 ], [ 0.000000e+00, %ELSE2686 ], [ 0.000000e+00, %ELSE2668 ], [ 0.000000e+00, %ELSE2596 ] %225 = fmul float %temp894.2, undef br label %ENDIF2564 ELSE2632: ; preds = %ELSE2596 br i1 undef, label %ENDIF2594, label %ELSE2650 ELSE2650: ; preds = %ELSE2632 %226 = fcmp oeq float %temp292.11, %110 %227 = fcmp olt float %110, %111 %228 = and i1 %226, %227 br i1 %228, label %IF2667, label %ELSE2668 IF2667: ; preds = %ELSE2650 br i1 undef, label %ENDIF2594, label %ELSE2671 ELSE2668: ; preds = %ELSE2650 %229 = fcmp oeq float %temp292.11, %128 %230 = fcmp olt float %128, undef %231 = and i1 %229, %230 br i1 %231, label %ENDIF2594, label %ELSE2686 ELSE2671: ; preds = %IF2667 br label %ENDIF2594 ELSE2686: ; preds = %ELSE2668 %232 = fcmp oeq float %temp292.11, %145 %233 = fcmp olt float %145, undef %234 = and i1 %232, %233 br i1 %234, label %ENDIF2594, label %ELSE2704 ELSE2704: ; preds = %ELSE2686 %235 = fcmp oeq float %temp292.11, %180 %236 = fcmp olt float %180, undef %237 = and i1 %235, %236 br i1 %237, label %ENDIF2594, label %ELSE2740 ELSE2740: ; preds = %ELSE2704 br i1 undef, label %IF2757, label %ELSE2758 IF2757: ; preds = %ELSE2740 br i1 undef, label %ENDIF2594, label %ELSE2761 ELSE2758: ; preds = %ELSE2740 br i1 undef, label %IF2775, label %ENDIF2594 ELSE2761: ; preds = %IF2757 br label %ENDIF2594 IF2775: ; preds = %ELSE2758 %238 = fcmp olt float undef, undef br i1 %238, label %ENDIF2594, label %ELSE2779 ELSE2779: ; preds = %IF2775 br i1 undef, label %ENDIF2594, label %ELSE2782 ELSE2782: ; preds = %ELSE2779 br i1 undef, label %ENDIF2594, label %ELSE2785 ELSE2785: ; preds = %ELSE2782 %239 = fcmp olt float undef, 0.000000e+00 br i1 %239, label %ENDIF2594, label %ELSE2788 ELSE2788: ; preds = %ELSE2785 %240 = fcmp olt float 0.000000e+00, undef %.2848 = select i1 %240, float -1.000000e+00, float 1.000000e+00 br label %ENDIF2594 ELSE2797: ; preds = %ENDIF2564 %241 = fsub float %8, undef %242 = fsub float %9, undef %243 = fsub float %10, undef %244 = fmul float %241, undef %245 = fmul float %242, undef %246 = fmul float %243, undef %247 = fsub float %11, undef %248 = fsub float %12, undef %249 = fsub float %13, undef %250 = fmul float %247, undef %251 = fmul float %248, undef %252 = fmul float %249, undef %253 = call float @llvm.minnum.f32(float %244, float %250) %254 = call float @llvm.minnum.f32(float %245, float %251) %255 = call float @llvm.maxnum.f32(float %246, float %252) %256 = call float @llvm.maxnum.f32(float %253, float %254) %257 = call float @llvm.maxnum.f32(float %256, float undef) %258 = call float @llvm.minnum.f32(float undef, float %255) %259 = fcmp ogt float %257, 0.000000e+00 %260 = fcmp olt float %257, 1.000000e+00 %261 = and i1 %259, %260 %262 = fcmp olt float %257, %258 %263 = and i1 %261, %262 br i1 %263, label %ENDIF2795, label %ELSE2800 ENDIF2795: ; preds = %ELSE2824, %ELSE2821, %ELSE2818, %ELSE2815, %ELSE2812, %ELSE2809, %ELSE2806, %ELSE2803, %ELSE2800, %ELSE2797, %ENDIF2564 br label %LOOP ELSE2800: ; preds = %ELSE2797 br i1 undef, label %ENDIF2795, label %ELSE2803 ELSE2803: ; preds = %ELSE2800 %264 = fsub float %20, undef %265 = fsub float %21, undef %266 = fsub float %22, undef %267 = fmul float %264, undef %268 = fmul float %265, undef %269 = fmul float %266, 0.000000e+00 %270 = fsub float %23, undef %271 = fsub float %24, undef %272 = fsub float %25, undef %273 = fmul float %270, undef %274 = fmul float %271, undef %275 = fmul float %272, undef %276 = call float @llvm.minnum.f32(float %267, float %273) %277 = call float @llvm.maxnum.f32(float %268, float %274) %278 = call float @llvm.maxnum.f32(float %269, float %275) %279 = call float @llvm.maxnum.f32(float %276, float undef) %280 = call float @llvm.maxnum.f32(float %279, float undef) %281 = call float @llvm.minnum.f32(float undef, float %277) %282 = call float @llvm.minnum.f32(float %281, float %278) %283 = fcmp ogt float %280, 0.000000e+00 %284 = fcmp olt float %280, 1.000000e+00 %285 = and i1 %283, %284 %286 = fcmp olt float %280, %282 %287 = and i1 %285, %286 br i1 %287, label %ENDIF2795, label %ELSE2806 ELSE2806: ; preds = %ELSE2803 %288 = fsub float %26, undef %289 = fsub float %27, undef %290 = fsub float %28, undef %291 = fmul float %288, undef %292 = fmul float %289, 0.000000e+00 %293 = fmul float %290, undef %294 = fsub float %29, undef %295 = fmul float %294, undef %296 = call float @llvm.minnum.f32(float %291, float %295) %297 = call float @llvm.minnum.f32(float %292, float undef) %298 = call float @llvm.maxnum.f32(float %293, float undef) %299 = call float @llvm.maxnum.f32(float %296, float %297) %300 = call float @llvm.maxnum.f32(float %299, float undef) %301 = call float @llvm.minnum.f32(float undef, float %298) %302 = fcmp ogt float %300, 0.000000e+00 %303 = fcmp olt float %300, 1.000000e+00 %304 = and i1 %302, %303 %305 = fcmp olt float %300, %301 %306 = and i1 %304, %305 br i1 %306, label %ENDIF2795, label %ELSE2809 ELSE2809: ; preds = %ELSE2806 br i1 undef, label %ENDIF2795, label %ELSE2812 ELSE2812: ; preds = %ELSE2809 br i1 undef, label %ENDIF2795, label %ELSE2815 ELSE2815: ; preds = %ELSE2812 br i1 undef, label %ENDIF2795, label %ELSE2818 ELSE2818: ; preds = %ELSE2815 br i1 undef, label %ENDIF2795, label %ELSE2821 ELSE2821: ; preds = %ELSE2818 %307 = fsub float %56, undef %308 = fsub float %57, undef %309 = fsub float %58, undef %310 = fmul float %307, undef %311 = fmul float %308, 0.000000e+00 %312 = fmul float %309, undef %313 = fsub float %59, undef %314 = fsub float %60, undef %315 = fsub float %61, undef %316 = fmul float %313, undef %317 = fmul float %314, undef %318 = fmul float %315, undef %319 = call float @llvm.maxnum.f32(float %310, float %316) %320 = call float @llvm.maxnum.f32(float %311, float %317) %321 = call float @llvm.maxnum.f32(float %312, float %318) %322 = call float @llvm.minnum.f32(float %319, float %320) %323 = call float @llvm.minnum.f32(float %322, float %321) %324 = fcmp ogt float undef, 0.000000e+00 %325 = fcmp olt float undef, 1.000000e+00 %326 = and i1 %324, %325 %327 = fcmp olt float undef, %323 %328 = and i1 %326, %327 br i1 %328, label %ENDIF2795, label %ELSE2824 ELSE2824: ; preds = %ELSE2821 %.2849 = select i1 undef, float 0.000000e+00, float 1.000000e+00 br label %ENDIF2795 } declare i32 @llvm.amdgcn.mbcnt.lo(i32, i32) #2 ; Function Attrs: nounwind readnone declare float @llvm.SI.load.const(<16 x i8>, i32) #2 ; Function Attrs: nounwind readnone declare float @llvm.floor.f32(float) #2 ; Function Attrs: nounwind readnone declare float @llvm.sqrt.f32(float) #2 ; Function Attrs: nounwind readnone declare float @llvm.minnum.f32(float, float) #2 ; Function Attrs: nounwind readnone declare float @llvm.maxnum.f32(float, float) #2 declare void @llvm.SI.export(i32, i32, i32, i32, i32, float, float, float, float) attributes #0 = { alwaysinline nounwind readnone } attributes #1 = { "enable-no-nans-fp-math"="true" } attributes #2 = { nounwind readnone }