<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Hi Renato,<br>
      <br>
      you are right! There is 'avx' support:<br>
      <br>
      fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat
      pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx
      pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good
      xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor
      ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2
      x2apic popcnt aes xsave avx lahf_lm ida arat epb xsaveopt pln pts
      dts tpr_shadow vnmi flexpriority ept vpid<br>
      <br>
      This is still strange: Why is this the only IR where 256 bit
      vectors are found and for all other functions it finds 128 bit
      vectors. This should be independent of the IR, right? So far I
      have tested a bunch of about 20 functions generated and vectorized
      with this method. When processing all but this one the loop
      vectorizer finds 128 bit vectors as the widest. Only for this IR
      the loop vectorizer 'sees' the 256 bit version. Any idea?<br>
      <br>
      Frank<br>
      <br>
      <br>
      On 10/11/13 09:39, Renato Golin wrote:<br>
    </div>
    <blockquote
cite="mid:CAMSE1kfXuSS3AbhTDY3KycBiddOfBHFbMoaZ8zv_6S_Hu7g6+Q@mail.gmail.com"
      type="cite">
      <div dir="ltr">Hi Frank,
        <div><br>
        </div>
        <div>I'm not an Intel expert, but it seems that your Xeon E5
          supports AVX, which does have 256-bit vectors. The other two
          only supports SSE instructions, which are only 128-bit long.</div>
        <div><br>
        </div>
        <div>cheers,</div>
        <div>--renato</div>
      </div>
      <div class="gmail_extra"><br>
        <br>
        <div class="gmail_quote">On 10 November 2013 06:05, Frank Winter
          <<a moz-do-not-send="true" href="mailto:fwinter@jlab.org">fwinter@jlab.org</a>>
          wrote:<br>
          <blockquote class="gmail_quote">I looked more into this. For
            the previously sent IR the vector width of 256 bit is found
            mistakenly (and reproducibly) on this hardware:<br>
            <br>
            model name    : Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz<br>
            <br>
            For the same IR the loop vectorizer finds the correct vector
            width (128 bit) on:<br>
            <br>
            model name    : Intel(R) Xeon(R) CPU           E5630  @
            2.53GHz<br>
            model name    : Intel(R) Core(TM) i7 CPU       M 640  @
            2.80GHz<br>
            <br>
            Thus, the behavior depends on which hardware I run on.<br>
            <br>
            I am using the JIT execution engine (original interface).<font
              color="#888888"><br>
              <br>
              Frank</font>
            <div class="HOEnZb">
              <div class="h5"><br>
                <br>
                <br>
                On 09/11/13 23:50, Frank Winter wrote:<br>
                <blockquote class="gmail_quote">
                  The loop vectorizer is doing an amazing job so far.
                  Most of the time.<br>
                  I just came across one function which led to
                  unexpected behavior:<br>
                  <br>
                  On this function the loop vectorizer finds a 256 bit
                  vector as the<br>
                  wides vector type for the x86-64 architecture. (!)<br>
                  <br>
                  This is strange, as it was always finding the correct
                  size of 128 bit<br>
                  as the widest type. I isolated the IR of the function
                  to check if this<br>
                  is reproducible outside of my application. And to my
                  surprise it is!<br>
                  <br>
                  If I run<br>
                  <br>
                  opt -O1 -loop-vectorize -debug-only=loop-vectorize
                  -vectorizer-min-trip-count=4 strange.ll -S<br>
                  <br>
                  on the IR found below I get:<br>
                  <br>
                  LV: Checking a loop in "main"<br>
                  LV: Found a loop: L3<br>
                  LV: Found an induction variable.<br>
                  LV: We need to do 0 pointer comparisons.<br>
                  LV: We don't need a runtime memory check.<br>
                  LV: We can vectorize this loop!<br>
                  LV: Found trip count: 4<br>
                  LV: The Widest type: 32 bits.<br>
                  LV: The Widest register is: 256 bits.<br>
                  <br>
                  Wow, a Sandybridge processor with 256 bit SIMD?<br>
                  <br>
                  The vectorizer carries on and figures that 8 would be
                  the best to go for.<br>
                  <br>
                  LV: Vector loop of width 8 costs: 38.<br>
                  LV: Selecting VF = : 8.<br>
                  <br>
                  I didn't look into the machine code but I guess there
                  is something going wrong earlier.<br>
                  <br>
                  I am wondering why it's reproducible and depending on
                  the IR?!<br>
                  <br>
                  PS When running with -O3 it still find 256 bit, but
                  later decides that it's not worth<br>
                  vectorizing.<br>
                  <br>
                  Frank<br>
                  <br>
                  <br>
                  <br>
                  <br>
                  <br>
                  <br>
                  target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"<br>
                  <br>
                  target triple = "x86_64-unknown-linux-elf"<br>
                  <br>
                  define void @main(i64 %arg0, i64 %arg1, i64 %arg2, i1
                  %arg3, i64 %arg4, float* noalias %arg5, float* noalias
                  %arg6, float* noalias %arg7, double* noalias %arg8) {<br>
                  entrypoint:<br>
                    br i1 %arg3, label %L0, label %L1<br>
                  <br>
                  L0:                                               ;
                  preds = %entrypoint<br>
                    %0 = add nsw i64 %arg0, %arg4<br>
                    %1 = add nsw i64 %arg1, %arg4<br>
                    br label %L2<br>
                  <br>
                  L1:                                               ;
                  preds = %entrypoint<br>
                    br label %L2<br>
                  <br>
                  L2:                                               ;
                  preds = %L0, %L1<br>
                    %2 = phi i64 [ %arg0, %L1 ], [ %0, %L0 ]<br>
                    %3 = phi i64 [ %arg1, %L1 ], [ %1, %L0 ]<br>
                    %4 = sdiv i64 %2, 4<br>
                    %5 = sdiv i64 %3, 4<br>
                    br label %L5<br>
                  <br>
                  L3:                                               ;
                  preds = %L7, %L5<br>
                    %6 = phi i64 [ %528, %L7 ], [ 0, %L5 ]<br>
                    %7 = mul i64 %527, 4<br>
                    %8 = add nsw i64 %7, %6<br>
                    %9 = mul i64 %527, 1<br>
                    %10 = add nsw i64 %9, 0<br>
                    %11 = mul i64 %10, 9<br>
                    %12 = add nsw i64 %11, 0<br>
                    %13 = mul i64 %12, 2<br>
                    %14 = add nsw i64 %13, 0<br>
                    %15 = mul i64 %14, 4<br>
                    %16 = add nsw i64 %15, %6<br>
                    %17 = mul i64 %527, 4<br>
                    %18 = add nsw i64 %17, %6<br>
                    %19 = mul i64 %527, 1<br>
                    %20 = add nsw i64 %19, 0<br>
                    %21 = mul i64 %20, 9<br>
                    %22 = add nsw i64 %21, 0<br>
                    %23 = mul i64 %22, 2<br>
                    %24 = add nsw i64 %23, 1<br>
                    %25 = mul i64 %24, 4<br>
                    %26 = add nsw i64 %25, %6<br>
                    %27 = mul i64 %527, 4<br>
                    %28 = add nsw i64 %27, %6<br>
                    %29 = mul i64 %527, 1<br>
                    %30 = add nsw i64 %29, 0<br>
                    %31 = mul i64 %30, 9<br>
                    %32 = add nsw i64 %31, 1<br>
                    %33 = mul i64 %32, 2<br>
                    %34 = add nsw i64 %33, 0<br>
                    %35 = mul i64 %34, 4<br>
                    %36 = add nsw i64 %35, %6<br>
                    %37 = mul i64 %527, 4<br>
                    %38 = add nsw i64 %37, %6<br>
                    %39 = mul i64 %527, 1<br>
                    %40 = add nsw i64 %39, 0<br>
                    %41 = mul i64 %40, 9<br>
                    %42 = add nsw i64 %41, 1<br>
                    %43 = mul i64 %42, 2<br>
                    %44 = add nsw i64 %43, 1<br>
                    %45 = mul i64 %44, 4<br>
                    %46 = add nsw i64 %45, %6<br>
                    %47 = mul i64 %527, 4<br>
                    %48 = add nsw i64 %47, %6<br>
                    %49 = mul i64 %527, 1<br>
                    %50 = add nsw i64 %49, 0<br>
                    %51 = mul i64 %50, 9<br>
                    %52 = add nsw i64 %51, 2<br>
                    %53 = mul i64 %52, 2<br>
                    %54 = add nsw i64 %53, 0<br>
                    %55 = mul i64 %54, 4<br>
                    %56 = add nsw i64 %55, %6<br>
                    %57 = mul i64 %527, 4<br>
                    %58 = add nsw i64 %57, %6<br>
                    %59 = mul i64 %527, 1<br>
                    %60 = add nsw i64 %59, 0<br>
                    %61 = mul i64 %60, 9<br>
                    %62 = add nsw i64 %61, 2<br>
                    %63 = mul i64 %62, 2<br>
                    %64 = add nsw i64 %63, 1<br>
                    %65 = mul i64 %64, 4<br>
                    %66 = add nsw i64 %65, %6<br>
                    %67 = mul i64 %527, 4<br>
                    %68 = add nsw i64 %67, %6<br>
                    %69 = mul i64 %527, 1<br>
                    %70 = add nsw i64 %69, 0<br>
                    %71 = mul i64 %70, 9<br>
                    %72 = add nsw i64 %71, 3<br>
                    %73 = mul i64 %72, 2<br>
                    %74 = add nsw i64 %73, 0<br>
                    %75 = mul i64 %74, 4<br>
                    %76 = add nsw i64 %75, %6<br>
                    %77 = mul i64 %527, 4<br>
                    %78 = add nsw i64 %77, %6<br>
                    %79 = mul i64 %527, 1<br>
                    %80 = add nsw i64 %79, 0<br>
                    %81 = mul i64 %80, 9<br>
                    %82 = add nsw i64 %81, 3<br>
                    %83 = mul i64 %82, 2<br>
                    %84 = add nsw i64 %83, 1<br>
                    %85 = mul i64 %84, 4<br>
                    %86 = add nsw i64 %85, %6<br>
                    %87 = mul i64 %527, 4<br>
                    %88 = add nsw i64 %87, %6<br>
                    %89 = mul i64 %527, 1<br>
                    %90 = add nsw i64 %89, 0<br>
                    %91 = mul i64 %90, 9<br>
                    %92 = add nsw i64 %91, 4<br>
                    %93 = mul i64 %92, 2<br>
                    %94 = add nsw i64 %93, 0<br>
                    %95 = mul i64 %94, 4<br>
                    %96 = add nsw i64 %95, %6<br>
                    %97 = mul i64 %527, 4<br>
                    %98 = add nsw i64 %97, %6<br>
                    %99 = mul i64 %527, 1<br>
                    %100 = add nsw i64 %99, 0<br>
                    %101 = mul i64 %100, 9<br>
                    %102 = add nsw i64 %101, 4<br>
                    %103 = mul i64 %102, 2<br>
                    %104 = add nsw i64 %103, 1<br>
                    %105 = mul i64 %104, 4<br>
                    %106 = add nsw i64 %105, %6<br>
                    %107 = mul i64 %527, 4<br>
                    %108 = add nsw i64 %107, %6<br>
                    %109 = mul i64 %527, 1<br>
                    %110 = add nsw i64 %109, 0<br>
                    %111 = mul i64 %110, 9<br>
                    %112 = add nsw i64 %111, 5<br>
                    %113 = mul i64 %112, 2<br>
                    %114 = add nsw i64 %113, 0<br>
                    %115 = mul i64 %114, 4<br>
                    %116 = add nsw i64 %115, %6<br>
                    %117 = mul i64 %527, 4<br>
                    %118 = add nsw i64 %117, %6<br>
                    %119 = mul i64 %527, 1<br>
                    %120 = add nsw i64 %119, 0<br>
                    %121 = mul i64 %120, 9<br>
                    %122 = add nsw i64 %121, 5<br>
                    %123 = mul i64 %122, 2<br>
                    %124 = add nsw i64 %123, 1<br>
                    %125 = mul i64 %124, 4<br>
                    %126 = add nsw i64 %125, %6<br>
                    %127 = mul i64 %527, 4<br>
                    %128 = add nsw i64 %127, %6<br>
                    %129 = mul i64 %527, 1<br>
                    %130 = add nsw i64 %129, 0<br>
                    %131 = mul i64 %130, 9<br>
                    %132 = add nsw i64 %131, 6<br>
                    %133 = mul i64 %132, 2<br>
                    %134 = add nsw i64 %133, 0<br>
                    %135 = mul i64 %134, 4<br>
                    %136 = add nsw i64 %135, %6<br>
                    %137 = mul i64 %527, 4<br>
                    %138 = add nsw i64 %137, %6<br>
                    %139 = mul i64 %527, 1<br>
                    %140 = add nsw i64 %139, 0<br>
                    %141 = mul i64 %140, 9<br>
                    %142 = add nsw i64 %141, 6<br>
                    %143 = mul i64 %142, 2<br>
                    %144 = add nsw i64 %143, 1<br>
                    %145 = mul i64 %144, 4<br>
                    %146 = add nsw i64 %145, %6<br>
                    %147 = mul i64 %527, 4<br>
                    %148 = add nsw i64 %147, %6<br>
                    %149 = mul i64 %527, 1<br>
                    %150 = add nsw i64 %149, 0<br>
                    %151 = mul i64 %150, 9<br>
                    %152 = add nsw i64 %151, 7<br>
                    %153 = mul i64 %152, 2<br>
                    %154 = add nsw i64 %153, 0<br>
                    %155 = mul i64 %154, 4<br>
                    %156 = add nsw i64 %155, %6<br>
                    %157 = mul i64 %527, 4<br>
                    %158 = add nsw i64 %157, %6<br>
                    %159 = mul i64 %527, 1<br>
                    %160 = add nsw i64 %159, 0<br>
                    %161 = mul i64 %160, 9<br>
                    %162 = add nsw i64 %161, 7<br>
                    %163 = mul i64 %162, 2<br>
                    %164 = add nsw i64 %163, 1<br>
                    %165 = mul i64 %164, 4<br>
                    %166 = add nsw i64 %165, %6<br>
                    %167 = mul i64 %527, 4<br>
                    %168 = add nsw i64 %167, %6<br>
                    %169 = mul i64 %527, 1<br>
                    %170 = add nsw i64 %169, 0<br>
                    %171 = mul i64 %170, 9<br>
                    %172 = add nsw i64 %171, 8<br>
                    %173 = mul i64 %172, 2<br>
                    %174 = add nsw i64 %173, 0<br>
                    %175 = mul i64 %174, 4<br>
                    %176 = add nsw i64 %175, %6<br>
                    %177 = mul i64 %527, 4<br>
                    %178 = add nsw i64 %177, %6<br>
                    %179 = mul i64 %527, 1<br>
                    %180 = add nsw i64 %179, 0<br>
                    %181 = mul i64 %180, 9<br>
                    %182 = add nsw i64 %181, 8<br>
                    %183 = mul i64 %182, 2<br>
                    %184 = add nsw i64 %183, 1<br>
                    %185 = mul i64 %184, 4<br>
                    %186 = add nsw i64 %185, %6<br>
                    %187 = getelementptr float* %arg6, i64 %16<br>
                    %188 = load float* %187<br>
                    %189 = getelementptr float* %arg6, i64 %26<br>
                    %190 = load float* %189<br>
                    %191 = getelementptr float* %arg6, i64 %36<br>
                    %192 = load float* %191<br>
                    %193 = getelementptr float* %arg6, i64 %46<br>
                    %194 = load float* %193<br>
                    %195 = getelementptr float* %arg6, i64 %56<br>
                    %196 = load float* %195<br>
                    %197 = getelementptr float* %arg6, i64 %66<br>
                    %198 = load float* %197<br>
                    %199 = getelementptr float* %arg6, i64 %76<br>
                    %200 = load float* %199<br>
                    %201 = getelementptr float* %arg6, i64 %86<br>
                    %202 = load float* %201<br>
                    %203 = getelementptr float* %arg6, i64 %96<br>
                    %204 = load float* %203<br>
                    %205 = getelementptr float* %arg6, i64 %106<br>
                    %206 = load float* %205<br>
                    %207 = getelementptr float* %arg6, i64 %116<br>
                    %208 = load float* %207<br>
                    %209 = getelementptr float* %arg6, i64 %126<br>
                    %210 = load float* %209<br>
                    %211 = getelementptr float* %arg6, i64 %136<br>
                    %212 = load float* %211<br>
                    %213 = getelementptr float* %arg6, i64 %146<br>
                    %214 = load float* %213<br>
                    %215 = getelementptr float* %arg6, i64 %156<br>
                    %216 = load float* %215<br>
                    %217 = getelementptr float* %arg6, i64 %166<br>
                    %218 = load float* %217<br>
                    %219 = getelementptr float* %arg6, i64 %176<br>
                    %220 = load float* %219<br>
                    %221 = getelementptr float* %arg6, i64 %186<br>
                    %222 = load float* %221<br>
                    %223 = mul i64 %527, 4<br>
                    %224 = add nsw i64 %223, %6<br>
                    %225 = mul i64 %527, 1<br>
                    %226 = add nsw i64 %225, 0<br>
                    %227 = mul i64 %226, 9<br>
                    %228 = add nsw i64 %227, 0<br>
                    %229 = mul i64 %228, 2<br>
                    %230 = add nsw i64 %229, 0<br>
                    %231 = mul i64 %230, 4<br>
                    %232 = add nsw i64 %231, %6<br>
                    %233 = mul i64 %527, 4<br>
                    %234 = add nsw i64 %233, %6<br>
                    %235 = mul i64 %527, 1<br>
                    %236 = add nsw i64 %235, 0<br>
                    %237 = mul i64 %236, 9<br>
                    %238 = add nsw i64 %237, 0<br>
                    %239 = mul i64 %238, 2<br>
                    %240 = add nsw i64 %239, 1<br>
                    %241 = mul i64 %240, 4<br>
                    %242 = add nsw i64 %241, %6<br>
                    %243 = mul i64 %527, 4<br>
                    %244 = add nsw i64 %243, %6<br>
                    %245 = mul i64 %527, 1<br>
                    %246 = add nsw i64 %245, 0<br>
                    %247 = mul i64 %246, 9<br>
                    %248 = add nsw i64 %247, 1<br>
                    %249 = mul i64 %248, 2<br>
                    %250 = add nsw i64 %249, 0<br>
                    %251 = mul i64 %250, 4<br>
                    %252 = add nsw i64 %251, %6<br>
                    %253 = mul i64 %527, 4<br>
                    %254 = add nsw i64 %253, %6<br>
                    %255 = mul i64 %527, 1<br>
                    %256 = add nsw i64 %255, 0<br>
                    %257 = mul i64 %256, 9<br>
                    %258 = add nsw i64 %257, 1<br>
                    %259 = mul i64 %258, 2<br>
                    %260 = add nsw i64 %259, 1<br>
                    %261 = mul i64 %260, 4<br>
                    %262 = add nsw i64 %261, %6<br>
                    %263 = mul i64 %527, 4<br>
                    %264 = add nsw i64 %263, %6<br>
                    %265 = mul i64 %527, 1<br>
                    %266 = add nsw i64 %265, 0<br>
                    %267 = mul i64 %266, 9<br>
                    %268 = add nsw i64 %267, 2<br>
                    %269 = mul i64 %268, 2<br>
                    %270 = add nsw i64 %269, 0<br>
                    %271 = mul i64 %270, 4<br>
                    %272 = add nsw i64 %271, %6<br>
                    %273 = mul i64 %527, 4<br>
                    %274 = add nsw i64 %273, %6<br>
                    %275 = mul i64 %527, 1<br>
                    %276 = add nsw i64 %275, 0<br>
                    %277 = mul i64 %276, 9<br>
                    %278 = add nsw i64 %277, 2<br>
                    %279 = mul i64 %278, 2<br>
                    %280 = add nsw i64 %279, 1<br>
                    %281 = mul i64 %280, 4<br>
                    %282 = add nsw i64 %281, %6<br>
                    %283 = mul i64 %527, 4<br>
                    %284 = add nsw i64 %283, %6<br>
                    %285 = mul i64 %527, 1<br>
                    %286 = add nsw i64 %285, 0<br>
                    %287 = mul i64 %286, 9<br>
                    %288 = add nsw i64 %287, 3<br>
                    %289 = mul i64 %288, 2<br>
                    %290 = add nsw i64 %289, 0<br>
                    %291 = mul i64 %290, 4<br>
                    %292 = add nsw i64 %291, %6<br>
                    %293 = mul i64 %527, 4<br>
                    %294 = add nsw i64 %293, %6<br>
                    %295 = mul i64 %527, 1<br>
                    %296 = add nsw i64 %295, 0<br>
                    %297 = mul i64 %296, 9<br>
                    %298 = add nsw i64 %297, 3<br>
                    %299 = mul i64 %298, 2<br>
                    %300 = add nsw i64 %299, 1<br>
                    %301 = mul i64 %300, 4<br>
                    %302 = add nsw i64 %301, %6<br>
                    %303 = mul i64 %527, 4<br>
                    %304 = add nsw i64 %303, %6<br>
                    %305 = mul i64 %527, 1<br>
                    %306 = add nsw i64 %305, 0<br>
                    %307 = mul i64 %306, 9<br>
                    %308 = add nsw i64 %307, 4<br>
                    %309 = mul i64 %308, 2<br>
                    %310 = add nsw i64 %309, 0<br>
                    %311 = mul i64 %310, 4<br>
                    %312 = add nsw i64 %311, %6<br>
                    %313 = mul i64 %527, 4<br>
                    %314 = add nsw i64 %313, %6<br>
                    %315 = mul i64 %527, 1<br>
                    %316 = add nsw i64 %315, 0<br>
                    %317 = mul i64 %316, 9<br>
                    %318 = add nsw i64 %317, 4<br>
                    %319 = mul i64 %318, 2<br>
                    %320 = add nsw i64 %319, 1<br>
                    %321 = mul i64 %320, 4<br>
                    %322 = add nsw i64 %321, %6<br>
                    %323 = mul i64 %527, 4<br>
                    %324 = add nsw i64 %323, %6<br>
                    %325 = mul i64 %527, 1<br>
                    %326 = add nsw i64 %325, 0<br>
                    %327 = mul i64 %326, 9<br>
                    %328 = add nsw i64 %327, 5<br>
                    %329 = mul i64 %328, 2<br>
                    %330 = add nsw i64 %329, 0<br>
                    %331 = mul i64 %330, 4<br>
                    %332 = add nsw i64 %331, %6<br>
                    %333 = mul i64 %527, 4<br>
                    %334 = add nsw i64 %333, %6<br>
                    %335 = mul i64 %527, 1<br>
                    %336 = add nsw i64 %335, 0<br>
                    %337 = mul i64 %336, 9<br>
                    %338 = add nsw i64 %337, 5<br>
                    %339 = mul i64 %338, 2<br>
                    %340 = add nsw i64 %339, 1<br>
                    %341 = mul i64 %340, 4<br>
                    %342 = add nsw i64 %341, %6<br>
                    %343 = mul i64 %527, 4<br>
                    %344 = add nsw i64 %343, %6<br>
                    %345 = mul i64 %527, 1<br>
                    %346 = add nsw i64 %345, 0<br>
                    %347 = mul i64 %346, 9<br>
                    %348 = add nsw i64 %347, 6<br>
                    %349 = mul i64 %348, 2<br>
                    %350 = add nsw i64 %349, 0<br>
                    %351 = mul i64 %350, 4<br>
                    %352 = add nsw i64 %351, %6<br>
                    %353 = mul i64 %527, 4<br>
                    %354 = add nsw i64 %353, %6<br>
                    %355 = mul i64 %527, 1<br>
                    %356 = add nsw i64 %355, 0<br>
                    %357 = mul i64 %356, 9<br>
                    %358 = add nsw i64 %357, 6<br>
                    %359 = mul i64 %358, 2<br>
                    %360 = add nsw i64 %359, 1<br>
                    %361 = mul i64 %360, 4<br>
                    %362 = add nsw i64 %361, %6<br>
                    %363 = mul i64 %527, 4<br>
                    %364 = add nsw i64 %363, %6<br>
                    %365 = mul i64 %527, 1<br>
                    %366 = add nsw i64 %365, 0<br>
                    %367 = mul i64 %366, 9<br>
                    %368 = add nsw i64 %367, 7<br>
                    %369 = mul i64 %368, 2<br>
                    %370 = add nsw i64 %369, 0<br>
                    %371 = mul i64 %370, 4<br>
                    %372 = add nsw i64 %371, %6<br>
                    %373 = mul i64 %527, 4<br>
                    %374 = add nsw i64 %373, %6<br>
                    %375 = mul i64 %527, 1<br>
                    %376 = add nsw i64 %375, 0<br>
                    %377 = mul i64 %376, 9<br>
                    %378 = add nsw i64 %377, 7<br>
                    %379 = mul i64 %378, 2<br>
                    %380 = add nsw i64 %379, 1<br>
                    %381 = mul i64 %380, 4<br>
                    %382 = add nsw i64 %381, %6<br>
                    %383 = mul i64 %527, 4<br>
                    %384 = add nsw i64 %383, %6<br>
                    %385 = mul i64 %527, 1<br>
                    %386 = add nsw i64 %385, 0<br>
                    %387 = mul i64 %386, 9<br>
                    %388 = add nsw i64 %387, 8<br>
                    %389 = mul i64 %388, 2<br>
                    %390 = add nsw i64 %389, 0<br>
                    %391 = mul i64 %390, 4<br>
                    %392 = add nsw i64 %391, %6<br>
                    %393 = mul i64 %527, 4<br>
                    %394 = add nsw i64 %393, %6<br>
                    %395 = mul i64 %527, 1<br>
                    %396 = add nsw i64 %395, 0<br>
                    %397 = mul i64 %396, 9<br>
                    %398 = add nsw i64 %397, 8<br>
                    %399 = mul i64 %398, 2<br>
                    %400 = add nsw i64 %399, 1<br>
                    %401 = mul i64 %400, 4<br>
                    %402 = add nsw i64 %401, %6<br>
                    %403 = getelementptr float* %arg7, i64 %232<br>
                    %404 = load float* %403<br>
                    %405 = getelementptr float* %arg7, i64 %242<br>
                    %406 = load float* %405<br>
                    %407 = getelementptr float* %arg7, i64 %252<br>
                    %408 = load float* %407<br>
                    %409 = getelementptr float* %arg7, i64 %262<br>
                    %410 = load float* %409<br>
                    %411 = getelementptr float* %arg7, i64 %272<br>
                    %412 = load float* %411<br>
                    %413 = getelementptr float* %arg7, i64 %282<br>
                    %414 = load float* %413<br>
                    %415 = getelementptr float* %arg7, i64 %292<br>
                    %416 = load float* %415<br>
                    %417 = getelementptr float* %arg7, i64 %302<br>
                    %418 = load float* %417<br>
                    %419 = getelementptr float* %arg7, i64 %312<br>
                    %420 = load float* %419<br>
                    %421 = getelementptr float* %arg7, i64 %322<br>
                    %422 = load float* %421<br>
                    %423 = getelementptr float* %arg7, i64 %332<br>
                    %424 = load float* %423<br>
                    %425 = getelementptr float* %arg7, i64 %342<br>
                    %426 = load float* %425<br>
                    %427 = getelementptr float* %arg7, i64 %352<br>
                    %428 = load float* %427<br>
                    %429 = getelementptr float* %arg7, i64 %362<br>
                    %430 = load float* %429<br>
                    %431 = getelementptr float* %arg7, i64 %372<br>
                    %432 = load float* %431<br>
                    %433 = getelementptr float* %arg7, i64 %382<br>
                    %434 = load float* %433<br>
                    %435 = getelementptr float* %arg7, i64 %392<br>
                    %436 = load float* %435<br>
                    %437 = getelementptr float* %arg7, i64 %402<br>
                    %438 = load float* %437<br>
                    %439 = fmul float %406, %188<br>
                    %440 = fmul float %404, %190<br>
                    %441 = fadd float %440, %439<br>
                    %442 = fmul float %406, %190<br>
                    %443 = fmul float %404, %188<br>
                    %444 = fsub float %443, %442<br>
                    %445 = fmul float %410, %200<br>
                    %446 = fmul float %408, %202<br>
                    %447 = fadd float %446, %445<br>
                    %448 = fmul float %410, %202<br>
                    %449 = fmul float %408, %200<br>
                    %450 = fsub float %449, %448<br>
                    %451 = fadd float %444, %450<br>
                    %452 = fadd float %441, %447<br>
                    %453 = fmul float %414, %212<br>
                    %454 = fmul float %412, %214<br>
                    %455 = fadd float %454, %453<br>
                    %456 = fmul float %414, %214<br>
                    %457 = fmul float %412, %212<br>
                    %458 = fsub float %457, %456<br>
                    %459 = fadd float %451, %458<br>
                    %460 = fadd float %452, %455<br>
                    %461 = fmul float %418, %192<br>
                    %462 = fmul float %416, %194<br>
                    %463 = fadd float %462, %461<br>
                    %464 = fmul float %418, %194<br>
                    %465 = fmul float %416, %192<br>
                    %466 = fsub float %465, %464<br>
                    %467 = fadd float %459, %466<br>
                    %468 = fadd float %460, %463<br>
                    %469 = fmul float %422, %204<br>
                    %470 = fmul float %420, %206<br>
                    %471 = fadd float %470, %469<br>
                    %472 = fmul float %422, %206<br>
                    %473 = fmul float %420, %204<br>
                    %474 = fsub float %473, %472<br>
                    %475 = fadd float %467, %474<br>
                    %476 = fadd float %468, %471<br>
                    %477 = fmul float %426, %216<br>
                    %478 = fmul float %424, %218<br>
                    %479 = fadd float %478, %477<br>
                    %480 = fmul float %426, %218<br>
                    %481 = fmul float %424, %216<br>
                    %482 = fsub float %481, %480<br>
                    %483 = fadd float %475, %482<br>
                    %484 = fadd float %476, %479<br>
                    %485 = fmul float %430, %196<br>
                    %486 = fmul float %428, %198<br>
                    %487 = fadd float %486, %485<br>
                    %488 = fmul float %430, %198<br>
                    %489 = fmul float %428, %196<br>
                    %490 = fsub float %489, %488<br>
                    %491 = fadd float %483, %490<br>
                    %492 = fadd float %484, %487<br>
                    %493 = fmul float %434, %208<br>
                    %494 = fmul float %432, %210<br>
                    %495 = fadd float %494, %493<br>
                    %496 = fmul float %434, %210<br>
                    %497 = fmul float %432, %208<br>
                    %498 = fsub float %497, %496<br>
                    %499 = fadd float %491, %498<br>
                    %500 = fadd float %492, %495<br>
                    %501 = fmul float %438, %220<br>
                    %502 = fmul float %436, %222<br>
                    %503 = fadd float %502, %501<br>
                    %504 = fmul float %438, %222<br>
                    %505 = fmul float %436, %220<br>
                    %506 = fsub float %505, %504<br>
                    %507 = fadd float %499, %506<br>
                    %508 = fadd float %500, %503<br>
                    %509 = getelementptr double* %arg8, i32 0<br>
                    %510 = load double* %509<br>
                    %511 = fpext float %507 to double<br>
                    %512 = fmul double %510, %511<br>
                    %513 = mul i64 %527, 4<br>
                    %514 = add nsw i64 %513, %6<br>
                    %515 = mul i64 %527, 1<br>
                    %516 = add nsw i64 %515, 0<br>
                    %517 = mul i64 %516, 1<br>
                    %518 = add nsw i64 %517, 0<br>
                    %519 = mul i64 %518, 1<br>
                    %520 = add nsw i64 %519, 0<br>
                    %521 = mul i64 %520, 4<br>
                    %522 = add nsw i64 %521, %6<br>
                    %523 = getelementptr float* %arg5, i64 %522<br>
                    %524 = fptrunc double %512 to float<br>
                    store float %524, float* %523<br>
                    br label %L7<br>
                  <br>
                  L4:                                               ;
                  preds = %L7<br>
                    %525 = add nsw i64 %527, 1<br>
                    %526 = icmp sge i64 %525, %5<br>
                    br i1 %526, label %L6, label %L5<br>
                  <br>
                  L5:                                               ;
                  preds = %L4, %L2<br>
                    %527 = phi i64 [ %525, %L4 ], [ %4, %L2 ]<br>
                    br label %L3<br>
                  <br>
                  L6:                                               ;
                  preds = %L4<br>
                    ret void<br>
                  <br>
                  L7:                                               ;
                  preds = %L3<br>
                    %528 = add nsw i64 %6, 1<br>
                    %529 = icmp sge i64 %528, 4<br>
                    br i1 %529, label %L4, label %L3<br>
                  }<br>
                  <br>
                  <br>
                  <br>
                  _______________________________________________<br>
                  LLVM Developers mailing list<br>
                  <a moz-do-not-send="true"
                    href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>
                          <a moz-do-not-send="true"
                    href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a><br>
                  <a moz-do-not-send="true"
                    href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
                </blockquote>
                <br>
                <br>
                _______________________________________________<br>
                LLVM Developers mailing list<br>
                <a moz-do-not-send="true"
                  href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>
                        <a moz-do-not-send="true"
                  href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a><br>
                <a moz-do-not-send="true"
                  href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
    <br>
  </body>
</html>