<div dir="ltr"><div>Hi,</div><div><br></div><div>I am hoping that someone can help me figure out how to prevent the insertion of "memcpy" from the assembly source. </div><div><br></div><div>My target is an instruction set simulator that doesn't support this.</div><div><br></div><div>Thank you for your valuable time.</div><div><br></div><div>Wolf</div><div><br></div><div><b>Here are my compile commands:</b></div><div>$ clang -emit-llvm -fno-builtin -o3 --target=mips -S matrix_float.c -o vl_matrix_float.ll<br></div><div><div>$ llc vl_matrix_float.ll <br></div></div><div><br></div><div><b>IR File Snip:</b></div><div><div>  %0 = bitcast [10 x [10 x float]]* %a to i8*</div><div>  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* bitcast ([10 x [10 x float]]* @main.a to i8*), i32 400, i32 4, i1 false)</div><div>  %1 = bitcast [10 x [10 x float]]* %b to i8*</div><div>  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* bitcast ([10 x [10 x float]]* @main.b to i8*), i32 400, i32 4, i1 false)</div><div>  store i32 0, i32* %sum, align 4</div></div><div><br></div><div><b>Assembly File Snip:</b></div><div><br></div><div><div># BB#0:                                 # %entry</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">       </span>lui<span class="gmail-Apple-tab-span" style="white-space:pre">   </span>$2, %hi(_gp_disp)</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">      </span>addiu<span class="gmail-Apple-tab-span" style="white-space:pre"> </span>$2, $2, %lo(_gp_disp)</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">  </span>addiu<span class="gmail-Apple-tab-span" style="white-space:pre"> </span>$sp, $sp, -1664</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>sw<span class="gmail-Apple-tab-span" style="white-space:pre">    </span>$ra, 1660($sp)          # 4-byte Folded Spill</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">     </span>sw<span class="gmail-Apple-tab-span" style="white-space:pre">    </span>$fp, 1656($sp)          # 4-byte Folded Spill</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">     </span>sw<span class="gmail-Apple-tab-span" style="white-space:pre">    </span>$17, 1652($sp)          # 4-byte Folded Spill</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">     </span>sw<span class="gmail-Apple-tab-span" style="white-space:pre">    </span>$16, 1648($sp)          # 4-byte Folded Spill</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">     </span>move<span class="gmail-Apple-tab-span" style="white-space:pre">  </span> $fp, $sp</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">      </span>addu<span class="gmail-Apple-tab-span" style="white-space:pre">  </span>$17, $2, $25</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">   </span>lw<span class="gmail-Apple-tab-span" style="white-space:pre">    </span>$1, %got($main.a)($17)</div><div><span class="gmail-Apple-tab-span" style="white-space:pre"> </span>addiu<span class="gmail-Apple-tab-span" style="white-space:pre"> </span>$5, $1, %lo($main.a)</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">   </span>lw<span class="gmail-Apple-tab-span" style="white-space:pre">    </span>$25, %call16(memcpy)($17)</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">      </span>addiu<span class="gmail-Apple-tab-span" style="white-space:pre"> </span>$16, $fp, 1248</div><div><span class="gmail-Apple-tab-span" style="white-space:pre"> </span>move<span class="gmail-Apple-tab-span" style="white-space:pre">  </span> $4, $16</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">       </span>addiu<span class="gmail-Apple-tab-span" style="white-space:pre"> </span>$6, $zero, 400</div><div><span class="gmail-Apple-tab-span" style="white-space:pre"> </span>jalr<span class="gmail-Apple-tab-span" style="white-space:pre">  </span>$25</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">    </span>move<span class="gmail-Apple-tab-span" style="white-space:pre">  </span> $gp, $17</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">      </span>lw<span class="gmail-Apple-tab-span" style="white-space:pre">    </span>$1, %got($main.b)($17)</div><div><span class="gmail-Apple-tab-span" style="white-space:pre"> </span>addiu<span class="gmail-Apple-tab-span" style="white-space:pre"> </span>$5, $1, %lo($main.b)</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">   </span>lw<span class="gmail-Apple-tab-span" style="white-space:pre">    </span>$25, %call16(memcpy)($17)</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">      </span>addiu<span class="gmail-Apple-tab-span" style="white-space:pre"> </span>$17, $fp, 848</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">  </span>move<span class="gmail-Apple-tab-span" style="white-space:pre">  </span> $4, $17</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">       </span>jalr<span class="gmail-Apple-tab-span" style="white-space:pre">  </span>$25</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">    </span>addiu<span class="gmail-Apple-tab-span" style="white-space:pre"> </span>$6, $zero, 400</div><div><span class="gmail-Apple-tab-span" style="white-space:pre"> </span>sw<span class="gmail-Apple-tab-span" style="white-space:pre">    </span>$zero, 820($fp)</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>sw<span class="gmail-Apple-tab-span" style="white-space:pre">    </span>$zero, 844($fp)</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>addiu<span class="gmail-Apple-tab-span" style="white-space:pre"> </span>$2, $fp, 420</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">   </span>b<span class="gmail-Apple-tab-span" style="white-space:pre">     </span>$BB0_2</div><div><span class="gmail-Apple-tab-span" style="white-space:pre"> </span>addiu<span class="gmail-Apple-tab-span" style="white-space:pre"> </span>$3, $fp, 20</div><div>$BB0_1:</div></div><div><br></div>
</div>