Created
July 29, 2019 16:36
-
-
Save samtkaplan/0565ef0bc6d5007ed88635270950aaee to your computer and use it in GitHub Desktop.
simd bug, llvm output
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; @ /data/esdrd/tqff/tmp/issue.jl:20 within `does_not_vectorize!' | |
define nonnull %jl_value_t addrspace(10)* @"japi1_does_not_vectorize!_16049"(%jl_value_t addrspace(10)*, %jl_value_t addrspace(10)**, i32) #0 { | |
top: | |
%3 = alloca %jl_value_t addrspace(10)**, align 8 | |
store volatile %jl_value_t addrspace(10)** %1, %jl_value_t addrspace(10)*** %3, align 8 | |
%4 = load %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** %1, align 8 | |
%5 = getelementptr inbounds %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** %1, i64 1 | |
%6 = load %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** %5, align 8 | |
; ┌ @ array.jl:157 within `size' | |
; │┌ @ ntuple.jl:43 within `ntuple' | |
; ││┌ @ array.jl:157 within `#69' | |
; │││┌ @ array.jl:154 within `size' | |
%7 = addrspacecast %jl_value_t addrspace(10)* %6 to %jl_value_t addrspace(11)* | |
%8 = bitcast %jl_value_t addrspace(11)* %7 to %jl_value_t addrspace(10)* addrspace(11)* | |
%9 = getelementptr inbounds %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)* addrspace(11)* %8, i64 5 | |
%10 = bitcast %jl_value_t addrspace(10)* addrspace(11)* %9 to i64 addrspace(11)* | |
%11 = load i64, i64 addrspace(11)* %10, align 8 | |
; └└└└ | |
; @ /data/esdrd/tqff/tmp/issue.jl:21 within `does_not_vectorize!' | |
%12 = call nonnull %jl_value_t addrspace(10)* @julia_ntuple_16050(i64 9) | |
; @ /data/esdrd/tqff/tmp/issue.jl:23 within `does_not_vectorize!' | |
; ┌ @ int.jl:52 within `-' | |
%13 = add i64 %11, -5 | |
; └ | |
; ┌ @ range.jl:5 within `Colon' | |
; │┌ @ range.jl:277 within `UnitRange' | |
; ││┌ @ range.jl:282 within `unitrange_last' | |
; │││┌ @ operators.jl:341 within `>=' | |
; ││││┌ @ int.jl:424 within `<=' | |
%14 = icmp sgt i64 %13, 4 | |
; └└└└└ | |
br i1 %14, label %L13.L18_crit_edge, label %L208 | |
L13.L18_crit_edge: ; preds = %top | |
; @ /data/esdrd/tqff/tmp/issue.jl:20 within `does_not_vectorize!' | |
; ┌ @ array.jl:157 within `size' | |
; │┌ @ ntuple.jl:43 within `ntuple' | |
; ││┌ @ array.jl:157 within `#69' | |
; │││┌ @ array.jl:154 within `size' | |
%15 = getelementptr inbounds %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)* addrspace(11)* %8, i64 3 | |
%16 = bitcast %jl_value_t addrspace(10)* addrspace(11)* %15 to i64 addrspace(11)* | |
%17 = load i64, i64 addrspace(11)* %16, align 8 | |
%18 = getelementptr inbounds %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)* addrspace(11)* %8, i64 4 | |
%19 = bitcast %jl_value_t addrspace(10)* addrspace(11)* %18 to i64 addrspace(11)* | |
%20 = load i64, i64 addrspace(11)* %19, align 8 | |
%21 = add i64 %20, -5 | |
%22 = icmp sgt i64 %21, 4 | |
%23 = select i1 %22, i64 %21, i64 4 | |
%24 = add i64 %17, -5 | |
%25 = icmp sgt i64 %24, 4 | |
%26 = select i1 %25, i64 %24, i64 4 | |
%27 = add nsw i64 %26, -5 | |
; └└└└ | |
; @ /data/esdrd/tqff/tmp/issue.jl:24 within `does_not_vectorize!' | |
; ┌ @ simdloop.jl:71 within `macro expansion' | |
; │┌ @ simdloop.jl:51 within `simd_inner_length' | |
; ││┌ @ range.jl:543 within `length' | |
; │││┌ @ checked.jl:165 within `checked_add' | |
; ││││┌ @ checked.jl:132 within `add_with_overflow' | |
%28 = call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %27, i64 1) | |
%29 = extractvalue { i64, i1 } %28, 0 | |
%30 = extractvalue { i64, i1 } %28, 1 | |
%31 = icmp slt i64 %29, 1 | |
%32 = addrspacecast %jl_value_t addrspace(10)* %12 to %jl_value_t addrspace(11)* | |
%33 = bitcast %jl_value_t addrspace(11)* %32 to float addrspace(11)* | |
%34 = bitcast %jl_value_t addrspace(11)* %7 to float addrspace(13)* addrspace(11)* | |
%35 = load float addrspace(13)*, float addrspace(13)* addrspace(11)* %34, align 8 | |
%36 = bitcast %jl_value_t addrspace(11)* %32 to [9 x float] addrspace(11)* | |
%37 = getelementptr [9 x float], [9 x float] addrspace(11)* %36, i64 0, i64 1 | |
%38 = getelementptr [9 x float], [9 x float] addrspace(11)* %36, i64 0, i64 2 | |
%39 = getelementptr [9 x float], [9 x float] addrspace(11)* %36, i64 0, i64 3 | |
%40 = getelementptr [9 x float], [9 x float] addrspace(11)* %36, i64 0, i64 4 | |
%41 = getelementptr [9 x float], [9 x float] addrspace(11)* %36, i64 0, i64 5 | |
%42 = getelementptr [9 x float], [9 x float] addrspace(11)* %36, i64 0, i64 6 | |
%43 = getelementptr [9 x float], [9 x float] addrspace(11)* %36, i64 0, i64 7 | |
%44 = getelementptr [9 x float], [9 x float] addrspace(11)* %36, i64 0, i64 8 | |
%45 = addrspacecast %jl_value_t addrspace(10)* %4 to %jl_value_t addrspace(11)* | |
%46 = bitcast %jl_value_t addrspace(11)* %45 to %jl_value_t addrspace(10)* addrspace(11)* | |
%47 = getelementptr inbounds %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)* addrspace(11)* %46, i64 3 | |
%48 = bitcast %jl_value_t addrspace(10)* addrspace(11)* %47 to i64 addrspace(11)* | |
%49 = load i64, i64 addrspace(11)* %48, align 8 | |
%50 = getelementptr inbounds %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)* addrspace(11)* %46, i64 4 | |
%51 = bitcast %jl_value_t addrspace(10)* addrspace(11)* %50 to i64 addrspace(11)* | |
%52 = load i64, i64 addrspace(11)* %51, align 8 | |
%53 = bitcast %jl_value_t addrspace(11)* %45 to float addrspace(13)* addrspace(11)* | |
%54 = load float addrspace(13)*, float addrspace(13)* addrspace(11)* %53, align 8 | |
; └└└└└ | |
; @ /data/esdrd/tqff/tmp/issue.jl:23 within `does_not_vectorize!' | |
br label %L18 | |
L18: ; preds = %L197, %L13.L18_crit_edge | |
%value_phi3 = phi i64 [ 5, %L13.L18_crit_edge ], [ %174, %L197 ] | |
br i1 %22, label %L27.L32_crit_edge, label %L197 | |
L27.L32_crit_edge: ; preds = %L18 | |
; @ /data/esdrd/tqff/tmp/issue.jl:24 within `does_not_vectorize!' | |
; ┌ @ simdloop.jl:71 within `macro expansion' | |
; │┌ @ simdloop.jl:51 within `simd_inner_length' | |
; ││┌ @ range.jl:543 within `length' | |
; │││┌ @ checked.jl:166 within `checked_add' | |
br i1 %30, label %L50, label %L55.lr.ph | |
L55.lr.ph: ; preds = %L27.L32_crit_edge | |
%55 = add i64 %value_phi3, -1 | |
%56 = mul i64 %20, %55 | |
%57 = mul i64 %52, %55 | |
br label %L55 | |
L32: ; preds = %L186 | |
; └└└└ | |
; ┌ @ range.jl:598 within `iterate' | |
; │┌ @ int.jl:53 within `+' | |
%58 = add i64 %value_phi871, 1 | |
; └└ | |
; ┌ @ simdloop.jl:71 within `macro expansion' | |
; │┌ @ simdloop.jl:51 within `simd_inner_length' | |
; ││┌ @ range.jl:543 within `length' | |
; │││┌ @ checked.jl:166 within `checked_add' | |
br label %L55 | |
L50: ; preds = %L27.L32_crit_edge | |
call void @julia_throw_overflowerr_binaryop_13905(%jl_value_t addrspace(10)* addrspacecast (%jl_value_t* inttoptr (i64 47939032106784 to %jl_value_t*) to %jl_value_t addrspace(10)*), i64 %27, i64 1) | |
call void @llvm.trap() | |
unreachable | |
L55: ; preds = %L32, %L55.lr.ph | |
%value_phi871 = phi i64 [ 5, %L55.lr.ph ], [ %58, %L32 ] | |
; │└└└ | |
; │ @ simdloop.jl:72 within `macro expansion' | |
br i1 %31, label %L186, label %L61.lr.ph | |
L61.lr.ph: ; preds = %L55 | |
%59 = load float, float addrspace(11)* %33, align 4 | |
%60 = add i64 %value_phi871, -1 | |
%reass.add = add i64 %60, %56 | |
%reass.mul = mul i64 %reass.add, %17 | |
%61 = load float, float addrspace(11)* %37, align 4 | |
%62 = load float, float addrspace(11)* %38, align 4 | |
%63 = load float, float addrspace(11)* %39, align 4 | |
%64 = load float, float addrspace(11)* %40, align 4 | |
%65 = load float, float addrspace(11)* %41, align 4 | |
%66 = load float, float addrspace(11)* %42, align 4 | |
%67 = load float, float addrspace(11)* %43, align 4 | |
%68 = load float, float addrspace(11)* %44, align 4 | |
%69 = add i64 %value_phi871, -5 | |
%reass.add49 = add i64 %69, %56 | |
%reass.mul50 = mul i64 %reass.add49, %17 | |
%70 = add i64 %value_phi871, -4 | |
%reass.add51 = add i64 %70, %56 | |
%reass.mul52 = mul i64 %reass.add51, %17 | |
%71 = add i64 %value_phi871, -3 | |
%reass.add53 = add i64 %71, %56 | |
%reass.mul54 = mul i64 %reass.add53, %17 | |
%72 = add i64 %value_phi871, -2 | |
%reass.add55 = add i64 %72, %56 | |
%reass.mul56 = mul i64 %reass.add55, %17 | |
%reass.add59 = add i64 %56, %value_phi871 | |
%reass.mul60 = mul i64 %reass.add59, %17 | |
%73 = add i64 %value_phi871, 1 | |
%reass.add61 = add i64 %73, %56 | |
%reass.mul62 = mul i64 %reass.add61, %17 | |
%74 = add i64 %value_phi871, 2 | |
%reass.add63 = add i64 %74, %56 | |
%reass.mul64 = mul i64 %reass.add63, %17 | |
%75 = add i64 %value_phi871, 3 | |
%reass.add65 = add i64 %75, %56 | |
%reass.mul66 = mul i64 %reass.add65, %17 | |
%reass.add67 = add i64 %60, %57 | |
%reass.mul68 = mul i64 %reass.add67, %49 | |
; │ @ simdloop.jl:75 within `macro expansion' | |
br label %L61 | |
L61: ; preds = %L61.lr.ph, %L61 | |
%value_phi1170 = phi i64 [ 0, %L61.lr.ph ], [ %80, %L61 ] | |
; │ @ simdloop.jl:77 within `macro expansion' @ /data/esdrd/tqff/tmp/issue.jl:25 | |
; │┌ @ array.jl:743 within `getindex' | |
%76 = add i64 %reass.mul, %value_phi1170 | |
%77 = getelementptr inbounds float, float addrspace(13)* %35, i64 %76 | |
%78 = load float, float addrspace(13)* %77, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%79 = fmul float %59, %78 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%80 = add nuw nsw i64 %value_phi1170, 1 | |
%81 = add i64 %80, %reass.mul | |
%82 = getelementptr inbounds float, float addrspace(13)* %35, i64 %81 | |
%83 = load float, float addrspace(13)* %82, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%84 = fmul float %61, %83 | |
; │└ | |
; │┌ @ operators.jl:529 within `+' @ float.jl:400 | |
%85 = fadd float %79, %84 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%86 = add nuw nsw i64 %value_phi1170, 2 | |
%87 = add i64 %86, %reass.mul | |
%88 = getelementptr inbounds float, float addrspace(13)* %35, i64 %87 | |
%89 = load float, float addrspace(13)* %88, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%90 = fmul float %62, %89 | |
; │└ | |
; │┌ @ operators.jl:529 within `+' @ float.jl:400 | |
%91 = fadd float %85, %90 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%92 = add nuw nsw i64 %value_phi1170, 3 | |
%93 = add i64 %92, %reass.mul | |
%94 = getelementptr inbounds float, float addrspace(13)* %35, i64 %93 | |
%95 = load float, float addrspace(13)* %94, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%96 = fmul float %63, %95 | |
; │└ | |
; │┌ @ operators.jl:529 within `+' | |
; ││┌ @ operators.jl:519 within `afoldl' | |
; │││┌ @ float.jl:400 within `+' | |
%97 = fadd float %91, %96 | |
; │└└└ | |
; │┌ @ array.jl:743 within `getindex' | |
%98 = add nuw nsw i64 %value_phi1170, 4 | |
%99 = add i64 %98, %reass.mul | |
%100 = getelementptr inbounds float, float addrspace(13)* %35, i64 %99 | |
%101 = load float, float addrspace(13)* %100, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%102 = fmul float %64, %101 | |
; │└ | |
; │┌ @ operators.jl:529 within `+' | |
; ││┌ @ operators.jl:519 within `afoldl' | |
; │││┌ @ float.jl:400 within `+' | |
%103 = fadd float %97, %102 | |
; │└└└ | |
; │┌ @ array.jl:743 within `getindex' | |
%104 = add nuw nsw i64 %value_phi1170, 5 | |
%105 = add i64 %104, %reass.mul | |
%106 = getelementptr inbounds float, float addrspace(13)* %35, i64 %105 | |
%107 = load float, float addrspace(13)* %106, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%108 = fmul float %65, %107 | |
; │└ | |
; │┌ @ operators.jl:529 within `+' | |
; ││┌ @ operators.jl:519 within `afoldl' | |
; │││┌ @ float.jl:400 within `+' | |
%109 = fadd float %103, %108 | |
; │└└└ | |
; │┌ @ array.jl:743 within `getindex' | |
%110 = add nuw i64 %value_phi1170, 6 | |
%111 = add i64 %110, %reass.mul | |
%112 = getelementptr inbounds float, float addrspace(13)* %35, i64 %111 | |
%113 = load float, float addrspace(13)* %112, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%114 = fmul float %66, %113 | |
; │└ | |
; │┌ @ operators.jl:529 within `+' | |
; ││┌ @ operators.jl:519 within `afoldl' | |
; │││┌ @ float.jl:400 within `+' | |
%115 = fadd float %109, %114 | |
; │└└└ | |
; │┌ @ array.jl:743 within `getindex' | |
%116 = add nuw i64 %value_phi1170, 7 | |
%117 = add i64 %116, %reass.mul | |
%118 = getelementptr inbounds float, float addrspace(13)* %35, i64 %117 | |
%119 = load float, float addrspace(13)* %118, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%120 = fmul float %67, %119 | |
; │└ | |
; │┌ @ operators.jl:529 within `+' | |
; ││┌ @ operators.jl:519 within `afoldl' | |
; │││┌ @ float.jl:400 within `+' | |
%121 = fadd float %115, %120 | |
; │└└└ | |
; │┌ @ array.jl:743 within `getindex' | |
%122 = add nuw i64 %value_phi1170, 8 | |
%123 = add i64 %122, %reass.mul | |
%124 = getelementptr inbounds float, float addrspace(13)* %35, i64 %123 | |
%125 = load float, float addrspace(13)* %124, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%126 = fmul float %68, %125 | |
; │└ | |
; │┌ @ operators.jl:529 within `+' | |
; ││┌ @ operators.jl:519 within `afoldl' | |
; │││┌ @ float.jl:400 within `+' | |
%127 = fadd float %121, %126 | |
; │└└└ | |
; │┌ @ array.jl:743 within `getindex' | |
%128 = add i64 %98, %reass.mul50 | |
%129 = getelementptr inbounds float, float addrspace(13)* %35, i64 %128 | |
%130 = load float, float addrspace(13)* %129, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%131 = fmul float %59, %130 | |
; │└ | |
; │┌ @ operators.jl:529 within `+' | |
; ││┌ @ operators.jl:519 within `afoldl' | |
; │││┌ @ float.jl:400 within `+' | |
%132 = fadd float %127, %131 | |
; │└└└ | |
; │┌ @ array.jl:743 within `getindex' | |
%133 = add i64 %98, %reass.mul52 | |
%134 = getelementptr inbounds float, float addrspace(13)* %35, i64 %133 | |
%135 = load float, float addrspace(13)* %134, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%136 = fmul float %61, %135 | |
; │└ | |
; │┌ @ operators.jl:529 within `+' | |
; ││┌ @ operators.jl:519 within `afoldl' | |
; │││┌ @ float.jl:400 within `+' | |
%137 = fadd float %132, %136 | |
; │└└└ | |
; │┌ @ array.jl:743 within `getindex' | |
%138 = add i64 %98, %reass.mul54 | |
%139 = getelementptr inbounds float, float addrspace(13)* %35, i64 %138 | |
%140 = load float, float addrspace(13)* %139, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%141 = fmul float %62, %140 | |
; │└ | |
; │┌ @ operators.jl:529 within `+' | |
; ││┌ @ operators.jl:519 within `afoldl' | |
; │││┌ @ float.jl:400 within `+' | |
%142 = fadd float %137, %141 | |
; │└└└ | |
; │┌ @ array.jl:743 within `getindex' | |
%143 = add i64 %98, %reass.mul56 | |
%144 = getelementptr inbounds float, float addrspace(13)* %35, i64 %143 | |
%145 = load float, float addrspace(13)* %144, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%146 = fmul float %63, %145 | |
; │└ | |
; │┌ @ operators.jl:529 within `+' | |
; ││┌ @ operators.jl:519 within `afoldl' | |
; │││┌ @ float.jl:400 within `+' | |
%147 = fadd float %142, %146 | |
%148 = fadd float %147, %102 | |
; │└└└ | |
; │┌ @ array.jl:743 within `getindex' | |
%149 = add i64 %98, %reass.mul60 | |
%150 = getelementptr inbounds float, float addrspace(13)* %35, i64 %149 | |
%151 = load float, float addrspace(13)* %150, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%152 = fmul float %65, %151 | |
; │└ | |
; │┌ @ operators.jl:529 within `+' | |
; ││┌ @ operators.jl:519 within `afoldl' | |
; │││┌ @ float.jl:400 within `+' | |
%153 = fadd float %148, %152 | |
; │└└└ | |
; │┌ @ array.jl:743 within `getindex' | |
%154 = add i64 %98, %reass.mul62 | |
%155 = getelementptr inbounds float, float addrspace(13)* %35, i64 %154 | |
%156 = load float, float addrspace(13)* %155, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%157 = fmul float %66, %156 | |
; │└ | |
; │┌ @ operators.jl:529 within `+' | |
; ││┌ @ operators.jl:519 within `afoldl' | |
; │││┌ @ float.jl:400 within `+' | |
%158 = fadd float %153, %157 | |
; │└└└ | |
; │┌ @ array.jl:743 within `getindex' | |
%159 = add i64 %98, %reass.mul64 | |
%160 = getelementptr inbounds float, float addrspace(13)* %35, i64 %159 | |
%161 = load float, float addrspace(13)* %160, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%162 = fmul float %67, %161 | |
; │└ | |
; │┌ @ operators.jl:529 within `+' | |
; ││┌ @ operators.jl:519 within `afoldl' | |
; │││┌ @ float.jl:400 within `+' | |
%163 = fadd float %158, %162 | |
; │└└└ | |
; │┌ @ array.jl:743 within `getindex' | |
%164 = add i64 %98, %reass.mul66 | |
%165 = getelementptr inbounds float, float addrspace(13)* %35, i64 %164 | |
%166 = load float, float addrspace(13)* %165, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%167 = fmul float %68, %166 | |
; │└ | |
; │┌ @ operators.jl:529 within `+' | |
; ││┌ @ operators.jl:519 within `afoldl' | |
; │││┌ @ float.jl:400 within `+' | |
%168 = fadd float %163, %167 | |
; │└└└ | |
; │┌ @ array.jl:782 within `setindex!' | |
%169 = add i64 %98, %reass.mul68 | |
%170 = getelementptr inbounds float, float addrspace(13)* %54, i64 %169 | |
store float %168, float addrspace(13)* %170, align 4 | |
; │└ | |
; │ @ simdloop.jl:75 within `macro expansion' | |
; │┌ @ int.jl:49 within `<' | |
%171 = icmp ult i64 %80, %29 | |
; │└ | |
br i1 %171, label %L61, label %L186 | |
L186: ; preds = %L61, %L55 | |
; └ | |
; ┌ @ range.jl:597 within `iterate' | |
; │┌ @ promotion.jl:403 within `==' | |
%172 = icmp eq i64 %value_phi871, %23 | |
; └└ | |
br i1 %172, label %L197, label %L32 | |
L197: ; preds = %L186, %L18 | |
; ┌ @ range.jl:597 within `iterate' | |
; │┌ @ promotion.jl:403 within `==' | |
%173 = icmp eq i64 %value_phi3, %13 | |
; │└ | |
; │ @ range.jl:598 within `iterate' | |
; │┌ @ int.jl:53 within `+' | |
%174 = add i64 %value_phi3, 1 | |
; └└ | |
br i1 %173, label %L208, label %L18 | |
L208: ; preds = %L197, %top | |
; @ /data/esdrd/tqff/tmp/issue.jl:31 within `does_not_vectorize!' | |
ret %jl_value_t addrspace(10)* addrspacecast (%jl_value_t* inttoptr (i64 47938844788480 to %jl_value_t*) to %jl_value_t addrspace(10)*) | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; @ /data/esdrd/tqff/tmp/issue.jl:2 within `does_vectorize!' | |
define nonnull %jl_value_t addrspace(10)* @"japi1_does_vectorize!_16046"(%jl_value_t addrspace(10)*, %jl_value_t addrspace(10)**, i32) #0 { | |
top: | |
%3 = alloca %jl_value_t addrspace(10)**, align 8 | |
store volatile %jl_value_t addrspace(10)** %1, %jl_value_t addrspace(10)*** %3, align 8 | |
%4 = load %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** %1, align 8 | |
%5 = getelementptr inbounds %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** %1, i64 1 | |
%6 = load %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** %5, align 8 | |
; ┌ @ array.jl:157 within `size' | |
; │┌ @ ntuple.jl:43 within `ntuple' | |
; ││┌ @ array.jl:157 within `#69' | |
; │││┌ @ array.jl:154 within `size' | |
%7 = addrspacecast %jl_value_t addrspace(10)* %6 to %jl_value_t addrspace(11)* | |
%8 = bitcast %jl_value_t addrspace(11)* %7 to %jl_value_t addrspace(10)* addrspace(11)* | |
%9 = getelementptr inbounds %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)* addrspace(11)* %8, i64 5 | |
%10 = bitcast %jl_value_t addrspace(10)* addrspace(11)* %9 to i64 addrspace(11)* | |
%11 = load i64, i64 addrspace(11)* %10, align 8 | |
; └└└└ | |
; @ /data/esdrd/tqff/tmp/issue.jl:3 within `does_vectorize!' | |
%12 = call nonnull %jl_value_t addrspace(10)* @julia_ntuple_16047(i64 9) | |
; @ /data/esdrd/tqff/tmp/issue.jl:5 within `does_vectorize!' | |
; ┌ @ int.jl:52 within `-' | |
%13 = add i64 %11, -5 | |
; └ | |
; ┌ @ range.jl:5 within `Colon' | |
; │┌ @ range.jl:277 within `UnitRange' | |
; ││┌ @ range.jl:282 within `unitrange_last' | |
; │││┌ @ operators.jl:341 within `>=' | |
; ││││┌ @ int.jl:424 within `<=' | |
%14 = icmp sgt i64 %13, 4 | |
; └└└└└ | |
br i1 %14, label %L13.L18_crit_edge, label %L189 | |
L13.L18_crit_edge: ; preds = %top | |
; @ /data/esdrd/tqff/tmp/issue.jl:2 within `does_vectorize!' | |
; ┌ @ array.jl:157 within `size' | |
; │┌ @ ntuple.jl:43 within `ntuple' | |
; ││┌ @ array.jl:157 within `#69' | |
; │││┌ @ array.jl:154 within `size' | |
%15 = getelementptr inbounds %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)* addrspace(11)* %8, i64 3 | |
%16 = bitcast %jl_value_t addrspace(10)* addrspace(11)* %15 to i64 addrspace(11)* | |
%17 = load i64, i64 addrspace(11)* %16, align 8 | |
%18 = getelementptr inbounds %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)* addrspace(11)* %8, i64 4 | |
%19 = bitcast %jl_value_t addrspace(10)* addrspace(11)* %18 to i64 addrspace(11)* | |
%20 = load i64, i64 addrspace(11)* %19, align 8 | |
%21 = add i64 %20, -5 | |
%22 = icmp sgt i64 %21, 4 | |
%23 = select i1 %22, i64 %21, i64 4 | |
%24 = add i64 %17, -5 | |
%25 = icmp sgt i64 %24, 4 | |
%26 = select i1 %25, i64 %24, i64 4 | |
%27 = add nsw i64 %26, -5 | |
; └└└└ | |
; @ /data/esdrd/tqff/tmp/issue.jl:6 within `does_vectorize!' | |
; ┌ @ simdloop.jl:71 within `macro expansion' | |
; │┌ @ simdloop.jl:51 within `simd_inner_length' | |
; ││┌ @ range.jl:543 within `length' | |
; │││┌ @ checked.jl:165 within `checked_add' | |
; ││││┌ @ checked.jl:132 within `add_with_overflow' | |
%28 = call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %27, i64 1) | |
%29 = extractvalue { i64, i1 } %28, 0 | |
%30 = extractvalue { i64, i1 } %28, 1 | |
%31 = icmp slt i64 %29, 1 | |
%32 = addrspacecast %jl_value_t addrspace(10)* %12 to %jl_value_t addrspace(11)* | |
%33 = bitcast %jl_value_t addrspace(11)* %32 to float addrspace(11)* | |
%34 = bitcast %jl_value_t addrspace(11)* %7 to float addrspace(13)* addrspace(11)* | |
%35 = load float addrspace(13)*, float addrspace(13)* addrspace(11)* %34, align 8 | |
%36 = bitcast %jl_value_t addrspace(11)* %32 to [9 x float] addrspace(11)* | |
%37 = getelementptr [9 x float], [9 x float] addrspace(11)* %36, i64 0, i64 1 | |
%38 = getelementptr [9 x float], [9 x float] addrspace(11)* %36, i64 0, i64 2 | |
%39 = getelementptr [9 x float], [9 x float] addrspace(11)* %36, i64 0, i64 3 | |
%40 = getelementptr [9 x float], [9 x float] addrspace(11)* %36, i64 0, i64 4 | |
%41 = getelementptr [9 x float], [9 x float] addrspace(11)* %36, i64 0, i64 5 | |
%42 = getelementptr [9 x float], [9 x float] addrspace(11)* %36, i64 0, i64 6 | |
%43 = getelementptr [9 x float], [9 x float] addrspace(11)* %36, i64 0, i64 7 | |
%44 = getelementptr [9 x float], [9 x float] addrspace(11)* %36, i64 0, i64 8 | |
%45 = addrspacecast %jl_value_t addrspace(10)* %4 to %jl_value_t addrspace(11)* | |
%46 = bitcast %jl_value_t addrspace(11)* %45 to %jl_value_t addrspace(10)* addrspace(11)* | |
%47 = getelementptr inbounds %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)* addrspace(11)* %46, i64 3 | |
%48 = bitcast %jl_value_t addrspace(10)* addrspace(11)* %47 to i64 addrspace(11)* | |
%49 = load i64, i64 addrspace(11)* %48, align 8 | |
%50 = getelementptr inbounds %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)* addrspace(11)* %46, i64 4 | |
%51 = bitcast %jl_value_t addrspace(10)* addrspace(11)* %50 to i64 addrspace(11)* | |
%52 = load i64, i64 addrspace(11)* %51, align 8 | |
%53 = bitcast %jl_value_t addrspace(11)* %45 to float addrspace(13)* addrspace(11)* | |
%54 = load float addrspace(13)*, float addrspace(13)* addrspace(11)* %53, align 8 | |
; └└└└└ | |
; @ /data/esdrd/tqff/tmp/issue.jl:5 within `does_vectorize!' | |
%55 = shl i64 %52, 2 | |
%56 = add i64 %55, 4 | |
%57 = mul i64 %49, %56 | |
%58 = add i64 %57, 4 | |
%59 = mul i64 %52, %49 | |
%60 = add i64 %26, %57 | |
%61 = shl i64 %20, 2 | |
%62 = add i64 %61, 7 | |
%63 = mul i64 %17, %62 | |
%64 = add i64 %63, 4 | |
%65 = mul i64 %20, %17 | |
%66 = add i64 %26, %63 | |
%67 = add i64 %61, 6 | |
%68 = mul i64 %17, %67 | |
%69 = add i64 %68, 4 | |
%70 = add i64 %26, %68 | |
%71 = add i64 %61, 5 | |
%72 = mul i64 %17, %71 | |
%73 = add i64 %72, 4 | |
%74 = add i64 %26, %72 | |
%75 = or i64 %61, 3 | |
%76 = mul i64 %17, %75 | |
%77 = add i64 %76, 4 | |
%78 = add i64 %26, %76 | |
%79 = or i64 %61, 2 | |
%80 = mul i64 %17, %79 | |
%81 = add i64 %80, 4 | |
%82 = add i64 %26, %80 | |
%83 = or i64 %61, 1 | |
%84 = mul i64 %17, %83 | |
%85 = add i64 %84, 4 | |
%86 = add i64 %26, %84 | |
%87 = mul i64 %20, %17 | |
%88 = shl i64 %87, 2 | |
%89 = add i64 %88, 4 | |
%90 = add i64 %26, %88 | |
%91 = add i64 %61, 4 | |
%92 = mul i64 %17, %91 | |
%93 = add i64 %26, %92 | |
%94 = add i64 %93, 4 | |
br label %L18 | |
L18: ; preds = %L178, %L13.L18_crit_edge | |
%indvar = phi i64 [ %indvar.next, %L178 ], [ 0, %L13.L18_crit_edge ] | |
%value_phi3 = phi i64 [ %340, %L178 ], [ 5, %L13.L18_crit_edge ] | |
%95 = mul i64 %59, %indvar | |
%96 = add i64 %58, %95 | |
%97 = add i64 %60, %95 | |
%98 = mul i64 %65, %indvar | |
%99 = add i64 %64, %98 | |
%100 = add i64 %66, %98 | |
%101 = add i64 %69, %98 | |
%102 = add i64 %70, %98 | |
%103 = add i64 %73, %98 | |
%104 = add i64 %74, %98 | |
%105 = add i64 %77, %98 | |
%106 = add i64 %78, %98 | |
%107 = add i64 %81, %98 | |
%108 = add i64 %82, %98 | |
%109 = add i64 %85, %98 | |
%110 = add i64 %86, %98 | |
%111 = add i64 %89, %98 | |
%112 = add i64 %90, %98 | |
%113 = add i64 %92, %98 | |
%114 = add i64 %94, %98 | |
br i1 %22, label %L27.L32_crit_edge, label %L178 | |
L27.L32_crit_edge: ; preds = %L18 | |
; @ /data/esdrd/tqff/tmp/issue.jl:6 within `does_vectorize!' | |
; ┌ @ simdloop.jl:71 within `macro expansion' | |
; │┌ @ simdloop.jl:51 within `simd_inner_length' | |
; ││┌ @ range.jl:543 within `length' | |
; │││┌ @ checked.jl:166 within `checked_add' | |
br i1 %30, label %L50, label %L55.lr.ph | |
L55.lr.ph: ; preds = %L27.L32_crit_edge | |
%115 = add i64 %value_phi3, -1 | |
%116 = mul i64 %20, %115 | |
%117 = mul i64 %52, %115 | |
br label %L55 | |
L32: ; preds = %L167 | |
; └└└└ | |
; ┌ @ range.jl:598 within `iterate' | |
; │┌ @ int.jl:53 within `+' | |
%118 = add i64 %value_phi867, 1 | |
; └└ | |
; ┌ @ simdloop.jl:71 within `macro expansion' | |
; │┌ @ simdloop.jl:51 within `simd_inner_length' | |
; ││┌ @ range.jl:543 within `length' | |
; │││┌ @ checked.jl:166 within `checked_add' | |
%indvar.next72 = add i64 %indvar71, 1 | |
br label %L55 | |
L50: ; preds = %L27.L32_crit_edge | |
call void @julia_throw_overflowerr_binaryop_13905(%jl_value_t addrspace(10)* addrspacecast (%jl_value_t* inttoptr (i64 47939032106784 to %jl_value_t*) to %jl_value_t addrspace(10)*), i64 %27, i64 1) | |
call void @llvm.trap() | |
unreachable | |
L55: ; preds = %L32, %L55.lr.ph | |
%indvar71 = phi i64 [ %indvar.next72, %L32 ], [ 0, %L55.lr.ph ] | |
%value_phi867 = phi i64 [ %118, %L32 ], [ 5, %L55.lr.ph ] | |
; │└└└ | |
; │ @ simdloop.jl:72 within `macro expansion' | |
%119 = mul i64 %49, %indvar71 | |
%120 = add i64 %96, %119 | |
%scevgep = getelementptr float, float addrspace(13)* %54, i64 %120 | |
%121 = add i64 %97, %119 | |
%scevgep74 = getelementptr float, float addrspace(13)* %54, i64 %121 | |
%122 = mul i64 %17, %indvar71 | |
%123 = add i64 %99, %122 | |
%scevgep76 = getelementptr float, float addrspace(13)* %35, i64 %123 | |
%124 = add i64 %100, %122 | |
%scevgep78 = getelementptr float, float addrspace(13)* %35, i64 %124 | |
%125 = add i64 %101, %122 | |
%scevgep80 = getelementptr float, float addrspace(13)* %35, i64 %125 | |
%126 = add i64 %102, %122 | |
%scevgep82 = getelementptr float, float addrspace(13)* %35, i64 %126 | |
%127 = add i64 %103, %122 | |
%scevgep84 = getelementptr float, float addrspace(13)* %35, i64 %127 | |
%128 = add i64 %104, %122 | |
%scevgep86 = getelementptr float, float addrspace(13)* %35, i64 %128 | |
%129 = add i64 %105, %122 | |
%scevgep88 = getelementptr float, float addrspace(13)* %35, i64 %129 | |
%130 = add i64 %106, %122 | |
%scevgep90 = getelementptr float, float addrspace(13)* %35, i64 %130 | |
%131 = add i64 %107, %122 | |
%scevgep92 = getelementptr float, float addrspace(13)* %35, i64 %131 | |
%132 = add i64 %108, %122 | |
%scevgep94 = getelementptr float, float addrspace(13)* %35, i64 %132 | |
%133 = add i64 %109, %122 | |
%scevgep96 = getelementptr float, float addrspace(13)* %35, i64 %133 | |
%134 = add i64 %110, %122 | |
%scevgep98 = getelementptr float, float addrspace(13)* %35, i64 %134 | |
%135 = add i64 %111, %122 | |
%scevgep100 = getelementptr float, float addrspace(13)* %35, i64 %135 | |
%136 = add i64 %112, %122 | |
%scevgep102 = getelementptr float, float addrspace(13)* %35, i64 %136 | |
%137 = add i64 %113, %122 | |
%scevgep104 = getelementptr float, float addrspace(13)* %35, i64 %137 | |
%138 = add i64 %114, %122 | |
%scevgep106 = getelementptr float, float addrspace(13)* %35, i64 %138 | |
br i1 %31, label %L167, label %L61.lr.ph | |
L61.lr.ph: ; preds = %L55 | |
%139 = add i64 %value_phi867, -1 | |
%reass.add = add i64 %139, %116 | |
%reass.mul = mul i64 %reass.add, %17 | |
%140 = load float, float addrspace(11)* %33, align 4 | |
%141 = load float, float addrspace(11)* %37, align 4 | |
%142 = load float, float addrspace(11)* %38, align 4 | |
%143 = load float, float addrspace(11)* %39, align 4 | |
%144 = load float, float addrspace(11)* %40, align 4 | |
%145 = load float, float addrspace(11)* %41, align 4 | |
%146 = load float, float addrspace(11)* %42, align 4 | |
%147 = load float, float addrspace(11)* %43, align 4 | |
%148 = load float, float addrspace(11)* %44, align 4 | |
%149 = add i64 %value_phi867, -5 | |
%reass.add47 = add i64 %149, %116 | |
%reass.mul48 = mul i64 %reass.add47, %17 | |
%150 = add i64 %value_phi867, -4 | |
%reass.add49 = add i64 %150, %116 | |
%reass.mul50 = mul i64 %reass.add49, %17 | |
%151 = add i64 %value_phi867, -3 | |
%reass.add51 = add i64 %151, %116 | |
%reass.mul52 = mul i64 %reass.add51, %17 | |
%152 = add i64 %value_phi867, -2 | |
%reass.add53 = add i64 %152, %116 | |
%reass.mul54 = mul i64 %reass.add53, %17 | |
%reass.add57 = add i64 %116, %value_phi867 | |
%reass.mul58 = mul i64 %reass.add57, %17 | |
%153 = add i64 %value_phi867, 1 | |
%reass.add59 = add i64 %153, %116 | |
%reass.mul60 = mul i64 %reass.add59, %17 | |
%154 = add i64 %value_phi867, 2 | |
%reass.add61 = add i64 %154, %116 | |
%reass.mul62 = mul i64 %reass.add61, %17 | |
%reass.add63 = add i64 %139, %117 | |
%reass.mul64 = mul i64 %reass.add63, %49 | |
; │ @ simdloop.jl:75 within `macro expansion' | |
%min.iters.check = icmp ult i64 %29, 8 | |
br i1 %min.iters.check, label %scalar.ph, label %vector.memcheck | |
vector.memcheck: ; preds = %L61.lr.ph | |
%bound0 = icmp ult float addrspace(13)* %scevgep, %scevgep78 | |
%bound1 = icmp ult float addrspace(13)* %scevgep76, %scevgep74 | |
%found.conflict = and i1 %bound0, %bound1 | |
%bound0108 = icmp ult float addrspace(13)* %scevgep, %scevgep82 | |
%bound1109 = icmp ult float addrspace(13)* %scevgep80, %scevgep74 | |
%found.conflict110 = and i1 %bound0108, %bound1109 | |
%conflict.rdx = or i1 %found.conflict, %found.conflict110 | |
%bound0111 = icmp ult float addrspace(13)* %scevgep, %scevgep86 | |
%bound1112 = icmp ult float addrspace(13)* %scevgep84, %scevgep74 | |
%found.conflict113 = and i1 %bound0111, %bound1112 | |
%conflict.rdx114 = or i1 %conflict.rdx, %found.conflict113 | |
%bound0115 = icmp ult float addrspace(13)* %scevgep, %scevgep90 | |
%bound1116 = icmp ult float addrspace(13)* %scevgep88, %scevgep74 | |
%found.conflict117 = and i1 %bound0115, %bound1116 | |
%conflict.rdx118 = or i1 %conflict.rdx114, %found.conflict117 | |
%bound0119 = icmp ult float addrspace(13)* %scevgep, %scevgep94 | |
%bound1120 = icmp ult float addrspace(13)* %scevgep92, %scevgep74 | |
%found.conflict121 = and i1 %bound0119, %bound1120 | |
%conflict.rdx122 = or i1 %conflict.rdx118, %found.conflict121 | |
%bound0123 = icmp ult float addrspace(13)* %scevgep, %scevgep98 | |
%bound1124 = icmp ult float addrspace(13)* %scevgep96, %scevgep74 | |
%found.conflict125 = and i1 %bound0123, %bound1124 | |
%conflict.rdx126 = or i1 %conflict.rdx122, %found.conflict125 | |
%bound0127 = icmp ult float addrspace(13)* %scevgep, %scevgep102 | |
%bound1128 = icmp ult float addrspace(13)* %scevgep100, %scevgep74 | |
%found.conflict129 = and i1 %bound0127, %bound1128 | |
%conflict.rdx130 = or i1 %conflict.rdx126, %found.conflict129 | |
%bound0131 = icmp ult float addrspace(13)* %scevgep, %scevgep106 | |
%bound1132 = icmp ult float addrspace(13)* %scevgep104, %scevgep74 | |
%found.conflict133 = and i1 %bound0131, %bound1132 | |
%conflict.rdx134 = or i1 %conflict.rdx130, %found.conflict133 | |
br i1 %conflict.rdx134, label %scalar.ph, label %vector.ph | |
vector.ph: ; preds = %vector.memcheck | |
%n.vec = and i64 %29, -8 | |
%broadcast.splatinsert135 = insertelement <8 x float> undef, float %140, i32 0 | |
%broadcast.splat136 = shufflevector <8 x float> %broadcast.splatinsert135, <8 x float> undef, <8 x i32> zeroinitializer | |
%broadcast.splatinsert138 = insertelement <8 x float> undef, float %141, i32 0 | |
%broadcast.splat139 = shufflevector <8 x float> %broadcast.splatinsert138, <8 x float> undef, <8 x i32> zeroinitializer | |
%broadcast.splatinsert141 = insertelement <8 x float> undef, float %142, i32 0 | |
%broadcast.splat142 = shufflevector <8 x float> %broadcast.splatinsert141, <8 x float> undef, <8 x i32> zeroinitializer | |
%broadcast.splatinsert144 = insertelement <8 x float> undef, float %143, i32 0 | |
%broadcast.splat145 = shufflevector <8 x float> %broadcast.splatinsert144, <8 x float> undef, <8 x i32> zeroinitializer | |
%broadcast.splatinsert147 = insertelement <8 x float> undef, float %144, i32 0 | |
%broadcast.splat148 = shufflevector <8 x float> %broadcast.splatinsert147, <8 x float> undef, <8 x i32> zeroinitializer | |
%broadcast.splatinsert150 = insertelement <8 x float> undef, float %145, i32 0 | |
%broadcast.splat151 = shufflevector <8 x float> %broadcast.splatinsert150, <8 x float> undef, <8 x i32> zeroinitializer | |
%broadcast.splatinsert153 = insertelement <8 x float> undef, float %146, i32 0 | |
%broadcast.splat154 = shufflevector <8 x float> %broadcast.splatinsert153, <8 x float> undef, <8 x i32> zeroinitializer | |
%broadcast.splatinsert156 = insertelement <8 x float> undef, float %147, i32 0 | |
%broadcast.splat157 = shufflevector <8 x float> %broadcast.splatinsert156, <8 x float> undef, <8 x i32> zeroinitializer | |
%broadcast.splatinsert159 = insertelement <8 x float> undef, float %148, i32 0 | |
%broadcast.splat160 = shufflevector <8 x float> %broadcast.splatinsert159, <8 x float> undef, <8 x i32> zeroinitializer | |
br label %vector.body | |
vector.body: ; preds = %vector.body, %vector.ph | |
; │ @ simdloop.jl:77 within `macro expansion' @ /data/esdrd/tqff/tmp/issue.jl:7 | |
; │┌ @ array.jl:743 within `getindex' | |
%index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] | |
%155 = add i64 %reass.mul, %index | |
%156 = getelementptr inbounds float, float addrspace(13)* %35, i64 %155 | |
%157 = bitcast float addrspace(13)* %156 to <8 x float> addrspace(13)* | |
%wide.load = load <8 x float>, <8 x float> addrspace(13)* %157, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%158 = fmul <8 x float> %wide.load, %broadcast.splat136 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%159 = or i64 %index, 1 | |
%160 = add i64 %159, %reass.mul | |
%161 = getelementptr inbounds float, float addrspace(13)* %35, i64 %160 | |
%162 = bitcast float addrspace(13)* %161 to <8 x float> addrspace(13)* | |
%wide.load137 = load <8 x float>, <8 x float> addrspace(13)* %162, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%163 = fmul <8 x float> %wide.load137, %broadcast.splat139 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%164 = or i64 %index, 2 | |
%165 = add i64 %164, %reass.mul | |
%166 = getelementptr inbounds float, float addrspace(13)* %35, i64 %165 | |
%167 = bitcast float addrspace(13)* %166 to <8 x float> addrspace(13)* | |
%wide.load140 = load <8 x float>, <8 x float> addrspace(13)* %167, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%168 = fmul <8 x float> %wide.load140, %broadcast.splat142 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%169 = or i64 %index, 3 | |
%170 = add i64 %169, %reass.mul | |
%171 = getelementptr inbounds float, float addrspace(13)* %35, i64 %170 | |
%172 = bitcast float addrspace(13)* %171 to <8 x float> addrspace(13)* | |
%wide.load143 = load <8 x float>, <8 x float> addrspace(13)* %172, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%173 = fmul <8 x float> %wide.load143, %broadcast.splat145 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%174 = or i64 %index, 4 | |
%175 = add i64 %174, %reass.mul | |
%176 = getelementptr inbounds float, float addrspace(13)* %35, i64 %175 | |
%177 = bitcast float addrspace(13)* %176 to <8 x float> addrspace(13)* | |
%wide.load146 = load <8 x float>, <8 x float> addrspace(13)* %177, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%178 = fmul <8 x float> %wide.load146, %broadcast.splat148 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%179 = or i64 %index, 5 | |
%180 = add i64 %179, %reass.mul | |
%181 = getelementptr inbounds float, float addrspace(13)* %35, i64 %180 | |
%182 = bitcast float addrspace(13)* %181 to <8 x float> addrspace(13)* | |
%wide.load149 = load <8 x float>, <8 x float> addrspace(13)* %182, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%183 = fmul <8 x float> %wide.load149, %broadcast.splat151 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%184 = or i64 %index, 6 | |
%185 = add i64 %184, %reass.mul | |
%186 = getelementptr inbounds float, float addrspace(13)* %35, i64 %185 | |
%187 = bitcast float addrspace(13)* %186 to <8 x float> addrspace(13)* | |
%wide.load152 = load <8 x float>, <8 x float> addrspace(13)* %187, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%188 = fmul <8 x float> %wide.load152, %broadcast.splat154 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%189 = or i64 %index, 7 | |
%190 = add i64 %189, %reass.mul | |
%191 = getelementptr inbounds float, float addrspace(13)* %35, i64 %190 | |
%192 = bitcast float addrspace(13)* %191 to <8 x float> addrspace(13)* | |
%wide.load155 = load <8 x float>, <8 x float> addrspace(13)* %192, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%193 = fmul <8 x float> %wide.load155, %broadcast.splat157 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%194 = add nuw i64 %index, 8 | |
%195 = add i64 %194, %reass.mul | |
%196 = getelementptr inbounds float, float addrspace(13)* %35, i64 %195 | |
%197 = bitcast float addrspace(13)* %196 to <8 x float> addrspace(13)* | |
%wide.load158 = load <8 x float>, <8 x float> addrspace(13)* %197, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%198 = fmul <8 x float> %wide.load158, %broadcast.splat160 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%199 = add i64 %174, %reass.mul48 | |
%200 = getelementptr inbounds float, float addrspace(13)* %35, i64 %199 | |
%201 = bitcast float addrspace(13)* %200 to <8 x float> addrspace(13)* | |
%wide.load161 = load <8 x float>, <8 x float> addrspace(13)* %201, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%202 = fmul <8 x float> %wide.load161, %broadcast.splat136 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%203 = add i64 %174, %reass.mul50 | |
%204 = getelementptr inbounds float, float addrspace(13)* %35, i64 %203 | |
%205 = bitcast float addrspace(13)* %204 to <8 x float> addrspace(13)* | |
%wide.load162 = load <8 x float>, <8 x float> addrspace(13)* %205, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%206 = fmul <8 x float> %wide.load162, %broadcast.splat139 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%207 = add i64 %174, %reass.mul52 | |
%208 = getelementptr inbounds float, float addrspace(13)* %35, i64 %207 | |
%209 = bitcast float addrspace(13)* %208 to <8 x float> addrspace(13)* | |
%wide.load163 = load <8 x float>, <8 x float> addrspace(13)* %209, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%210 = fmul <8 x float> %wide.load163, %broadcast.splat142 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%211 = add i64 %174, %reass.mul54 | |
%212 = getelementptr inbounds float, float addrspace(13)* %35, i64 %211 | |
%213 = bitcast float addrspace(13)* %212 to <8 x float> addrspace(13)* | |
%wide.load164 = load <8 x float>, <8 x float> addrspace(13)* %213, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%214 = fmul <8 x float> %wide.load164, %broadcast.splat145 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%215 = add i64 %174, %reass.mul58 | |
%216 = getelementptr inbounds float, float addrspace(13)* %35, i64 %215 | |
%217 = bitcast float addrspace(13)* %216 to <8 x float> addrspace(13)* | |
%wide.load165 = load <8 x float>, <8 x float> addrspace(13)* %217, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%218 = fmul <8 x float> %wide.load165, %broadcast.splat151 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%219 = add i64 %174, %reass.mul60 | |
%220 = getelementptr inbounds float, float addrspace(13)* %35, i64 %219 | |
%221 = bitcast float addrspace(13)* %220 to <8 x float> addrspace(13)* | |
%wide.load166 = load <8 x float>, <8 x float> addrspace(13)* %221, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%222 = fmul <8 x float> %wide.load166, %broadcast.splat154 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%223 = add i64 %174, %reass.mul62 | |
%224 = getelementptr inbounds float, float addrspace(13)* %35, i64 %223 | |
%225 = bitcast float addrspace(13)* %224 to <8 x float> addrspace(13)* | |
%wide.load167 = load <8 x float>, <8 x float> addrspace(13)* %225, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%226 = fmul <8 x float> %wide.load167, %broadcast.splat157 | |
; │└ | |
; │┌ @ operators.jl:529 within `+' @ float.jl:400 | |
%227 = fadd <8 x float> %158, %163 | |
%228 = fadd <8 x float> %227, %168 | |
; ││ @ operators.jl:529 within `+' | |
; ││┌ @ operators.jl:517 within `afoldl' | |
; │││┌ @ float.jl:400 within `+' | |
%229 = fadd <8 x float> %228, %173 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%230 = fadd <8 x float> %229, %178 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%231 = fadd <8 x float> %230, %183 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%232 = fadd <8 x float> %231, %188 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%233 = fadd <8 x float> %232, %193 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%234 = fadd <8 x float> %233, %198 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%235 = fadd <8 x float> %234, %202 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%236 = fadd <8 x float> %235, %206 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%237 = fadd <8 x float> %236, %210 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%238 = fadd <8 x float> %237, %214 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%239 = fadd <8 x float> %238, %178 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%240 = fadd <8 x float> %239, %218 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%241 = fadd <8 x float> %240, %222 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:516 | |
; │││┌ @ float.jl:400 within `+' | |
%242 = fadd <8 x float> %241, %226 | |
; │└└└ | |
; │┌ @ array.jl:782 within `setindex!' | |
%243 = add i64 %174, %reass.mul64 | |
%244 = getelementptr inbounds float, float addrspace(13)* %54, i64 %243 | |
%245 = bitcast float addrspace(13)* %244 to <8 x float> addrspace(13)* | |
store <8 x float> %242, <8 x float> addrspace(13)* %245, align 4 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%index.next = add i64 %index, 8 | |
%246 = icmp eq i64 %index.next, %n.vec | |
br i1 %246, label %middle.block, label %vector.body | |
middle.block: ; preds = %vector.body | |
%cmp.n = icmp eq i64 %29, %n.vec | |
; │└ | |
; │ @ simdloop.jl:75 within `macro expansion' | |
br i1 %cmp.n, label %L167, label %scalar.ph | |
scalar.ph: ; preds = %middle.block, %vector.memcheck, %L61.lr.ph | |
%bc.resume.val = phi i64 [ %n.vec, %middle.block ], [ 0, %L61.lr.ph ], [ 0, %vector.memcheck ] | |
br label %L61 | |
L61: ; preds = %scalar.ph, %L61 | |
%value_phi1166 = phi i64 [ %bc.resume.val, %scalar.ph ], [ %251, %L61 ] | |
; │ @ simdloop.jl:77 within `macro expansion' @ /data/esdrd/tqff/tmp/issue.jl:7 | |
; │┌ @ array.jl:743 within `getindex' | |
%247 = add i64 %reass.mul, %value_phi1166 | |
%248 = getelementptr inbounds float, float addrspace(13)* %35, i64 %247 | |
%249 = load float, float addrspace(13)* %248, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%250 = fmul float %249, %140 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%251 = add nuw nsw i64 %value_phi1166, 1 | |
%252 = add i64 %251, %reass.mul | |
%253 = getelementptr inbounds float, float addrspace(13)* %35, i64 %252 | |
%254 = load float, float addrspace(13)* %253, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%255 = fmul float %254, %141 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%256 = add nuw nsw i64 %value_phi1166, 2 | |
%257 = add i64 %256, %reass.mul | |
%258 = getelementptr inbounds float, float addrspace(13)* %35, i64 %257 | |
%259 = load float, float addrspace(13)* %258, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%260 = fmul float %259, %142 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%261 = add nuw nsw i64 %value_phi1166, 3 | |
%262 = add i64 %261, %reass.mul | |
%263 = getelementptr inbounds float, float addrspace(13)* %35, i64 %262 | |
%264 = load float, float addrspace(13)* %263, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%265 = fmul float %264, %143 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%266 = add nuw nsw i64 %value_phi1166, 4 | |
%267 = add i64 %266, %reass.mul | |
%268 = getelementptr inbounds float, float addrspace(13)* %35, i64 %267 | |
%269 = load float, float addrspace(13)* %268, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%270 = fmul float %269, %144 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%271 = add nuw nsw i64 %value_phi1166, 5 | |
%272 = add i64 %271, %reass.mul | |
%273 = getelementptr inbounds float, float addrspace(13)* %35, i64 %272 | |
%274 = load float, float addrspace(13)* %273, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%275 = fmul float %274, %145 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%276 = add nuw i64 %value_phi1166, 6 | |
%277 = add i64 %276, %reass.mul | |
%278 = getelementptr inbounds float, float addrspace(13)* %35, i64 %277 | |
%279 = load float, float addrspace(13)* %278, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%280 = fmul float %279, %146 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%281 = add nuw i64 %value_phi1166, 7 | |
%282 = add i64 %281, %reass.mul | |
%283 = getelementptr inbounds float, float addrspace(13)* %35, i64 %282 | |
%284 = load float, float addrspace(13)* %283, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%285 = fmul float %284, %147 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%286 = add nuw i64 %value_phi1166, 8 | |
%287 = add i64 %286, %reass.mul | |
%288 = getelementptr inbounds float, float addrspace(13)* %35, i64 %287 | |
%289 = load float, float addrspace(13)* %288, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%290 = fmul float %289, %148 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%291 = add i64 %266, %reass.mul48 | |
%292 = getelementptr inbounds float, float addrspace(13)* %35, i64 %291 | |
%293 = load float, float addrspace(13)* %292, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%294 = fmul float %293, %140 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%295 = add i64 %266, %reass.mul50 | |
%296 = getelementptr inbounds float, float addrspace(13)* %35, i64 %295 | |
%297 = load float, float addrspace(13)* %296, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%298 = fmul float %297, %141 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%299 = add i64 %266, %reass.mul52 | |
%300 = getelementptr inbounds float, float addrspace(13)* %35, i64 %299 | |
%301 = load float, float addrspace(13)* %300, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%302 = fmul float %301, %142 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%303 = add i64 %266, %reass.mul54 | |
%304 = getelementptr inbounds float, float addrspace(13)* %35, i64 %303 | |
%305 = load float, float addrspace(13)* %304, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%306 = fmul float %305, %143 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%307 = add i64 %266, %reass.mul58 | |
%308 = getelementptr inbounds float, float addrspace(13)* %35, i64 %307 | |
%309 = load float, float addrspace(13)* %308, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%310 = fmul float %309, %145 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%311 = add i64 %266, %reass.mul60 | |
%312 = getelementptr inbounds float, float addrspace(13)* %35, i64 %311 | |
%313 = load float, float addrspace(13)* %312, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%314 = fmul float %313, %146 | |
; │└ | |
; │┌ @ array.jl:743 within `getindex' | |
%315 = add i64 %266, %reass.mul62 | |
%316 = getelementptr inbounds float, float addrspace(13)* %35, i64 %315 | |
%317 = load float, float addrspace(13)* %316, align 4 | |
; │└ | |
; │┌ @ float.jl:404 within `*' | |
%318 = fmul float %317, %147 | |
; │└ | |
; │┌ @ operators.jl:529 within `+' @ float.jl:400 | |
%319 = fadd float %250, %255 | |
%320 = fadd float %319, %260 | |
; ││ @ operators.jl:529 within `+' | |
; ││┌ @ operators.jl:517 within `afoldl' | |
; │││┌ @ float.jl:400 within `+' | |
%321 = fadd float %320, %265 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%322 = fadd float %321, %270 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%323 = fadd float %322, %275 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%324 = fadd float %323, %280 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%325 = fadd float %324, %285 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%326 = fadd float %325, %290 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%327 = fadd float %326, %294 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%328 = fadd float %327, %298 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%329 = fadd float %328, %302 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%330 = fadd float %329, %306 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%331 = fadd float %330, %270 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%332 = fadd float %331, %310 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 | |
; │││┌ @ float.jl:400 within `+' | |
%333 = fadd float %332, %314 | |
; │││└ | |
; │││ @ operators.jl:517 within `afoldl' @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:517 @ operators.jl:516 | |
; │││┌ @ float.jl:400 within `+' | |
%334 = fadd float %333, %318 | |
; │└└└ | |
; │┌ @ array.jl:782 within `setindex!' | |
%335 = add i64 %266, %reass.mul64 | |
%336 = getelementptr inbounds float, float addrspace(13)* %54, i64 %335 | |
store float %334, float addrspace(13)* %336, align 4 | |
; │└ | |
; │ @ simdloop.jl:75 within `macro expansion' | |
; │┌ @ int.jl:49 within `<' | |
%337 = icmp ult i64 %251, %29 | |
; │└ | |
br i1 %337, label %L61, label %L167 | |
L167: ; preds = %L61, %middle.block, %L55 | |
; └ | |
; ┌ @ range.jl:597 within `iterate' | |
; │┌ @ promotion.jl:403 within `==' | |
%338 = icmp eq i64 %value_phi867, %23 | |
; └└ | |
br i1 %338, label %L178, label %L32 | |
L178: ; preds = %L167, %L18 | |
; ┌ @ range.jl:597 within `iterate' | |
; │┌ @ promotion.jl:403 within `==' | |
%339 = icmp eq i64 %value_phi3, %13 | |
; │└ | |
; │ @ range.jl:598 within `iterate' | |
; │┌ @ int.jl:53 within `+' | |
%340 = add i64 %value_phi3, 1 | |
; └└ | |
%indvar.next = add i64 %indvar, 1 | |
br i1 %339, label %L189, label %L18 | |
L189: ; preds = %L178, %top | |
; @ /data/esdrd/tqff/tmp/issue.jl:13 within `does_vectorize!' | |
ret %jl_value_t addrspace(10)* addrspacecast (%jl_value_t* inttoptr (i64 47938844788480 to %jl_value_t*) to %jl_value_t addrspace(10)*) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment