<div dir="ltr">Like a list initializer, but will do partials/slices?<div><br></div><div>Are you just looking to create an intrinsic that will generate a jump to a lib routine? </div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 10, 2016 at 5:02 PM, Bagel via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Yes, I know this works peachy keen for char arrays.  I'm looking at (which is<br>
hard to express in C) something like<br>
<br>
void foo () {<br>
   int bar[20] = { 42, 42, ..., 42 };<br>
}<br>
<br>
I don't want to do a memcopy of the 20 element constant array, and memset<br>
doesn't work here.  I want an intrinsic that copys the scalar int constant 42<br>
to each element of the int array.<br>
<span class="HOEnZb"><font color="#888888"><br>
bagel<br>
</font></span><span class="im HOEnZb"><br>
<br>
On 11/10/2016 03:30 PM, Mehdi Amini wrote:<br>
> Hi,<br>
><br>
> An alternative is to perform what is done for the equivalent C construct:<br>
><br>
> void foo() {<br>
>   char bar[20] = “hello”;<br>
> }<br>
><br>
> -><br>
><br>
> @foo.bar = private unnamed_addr constant [20 x i8] c"hello\00\00\00\00\00\00\00\<wbr>00\00\00\00\00\00\00\00", align 16<br>
> define void @foo() #0 {<br>
>   %1 = alloca [20 x i8], align 16<br>
>   %2 = bitcast [20 x i8]* %1 to i8*<br>
>   call void @llvm.memcpy.p0i8.p0i8.i64(i8* %2, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @foo.bar, i32 0, i32 0), i64 20, i32 16, i1 false)<br>
>   ret void<br>
> }<br>
><br>
><br>
> —<br>
> Mehdi<br>
<br>
</span><div class="HOEnZb"><div class="h5">______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
</div></div></blockquote></div><br></div>