<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hi, Pete:<br>
<br>
Thank you for the clarification. Yes, it will incur bug if idx1
== idx2. This opt (try to promote <br>
vector-element-insertion/extraction) also incur miscompilation in
other applications. I have to <br>
disable this optimization, at least, for the time being. <br>
<br>
Thanks<br>
Shuxin<br>
<br>
<div class="moz-cite-prefix">On 4/5/13 4:10 PM, Pete Cooper wrote:<br>
</div>
<blockquote
cite="mid:D4F82335-3BAD-4C2E-AAAF-087E97ED393D@apple.com"
type="cite">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
Hi Shuxin
<div><br>
</div>
<div>I think i might have written that test. And yeah, no matter
what values you get you’ll get a 0.0. Its probably a bad test
case, but i can’t remember if it exposed a bug in this form or
not. Since writing it Chandler rewrote SROA anyway so the
original bug is long gone.</div>
<div><br>
</div>
<div>Thanks,</div>
<div>Pete<br>
<div>
<div>On Apr 5, 2013, at 11:57 AM, Shuxin Yang <<a
moz-do-not-send="true" href="mailto:shuxin.llvm@gmail.com">shuxin.llvm@gmail.com</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite">
<div style="letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-stroke-width: 0px;">Hi,<br>
<br>
Following is excerpted from dynamic-vector-gep.ll.<br>
The resulting "extractelement" seems to always return 0.0f
regardless the value idx1 and idx2 is holding.<br>
Am I missing something here or there is something fishy
take place?<br>
<br>
Thanks<br>
Shuxin<br>
<br>
<br>
101 ; CHECK: test6<br>
102 ; CHECK: insertelement <4 x float>
zeroinitializer, float 1.000000e+00, i32 %idx1<br>
103 ; CHECK: extractelement <4 x float>
zeroinitializer, i32 %idx2<br>
104<br>
105 %vector.pair = type { %vector.anon, %vector.anon }<br>
106 %vector.anon = type { %vector }<br>
107 %vector = type { <4 x float> }<br>
108<br>
109 ; Dynamic GEPs on vectors were crashing when the
vector was inside a struct<br>
110 ; as the new GEP for the new alloca might not include
all the indices from<br>
111 ; the original GEP, just the indices it needs to get
to the correct offset of<br>
112 ; some type, not necessarily the dynamic vector.<br>
113 ; This test makes sure we don't have this crash.<br>
114 define float @test6(i32 %idx1, i32 %idx2) {<br>
115 entry:<br>
116 %0 = alloca %vector.pair<br>
117 store %vector.pair zeroinitializer, %vector.pair* %0<br>
118 %ptr1 = getelementptr %vector.pair* %0, i32 0, i32
0, i32 0, i32 0, i32 %idx1<br>
119 store float 1.0, float* %ptr1<br>
120 %ptr2 = getelementptr %vector.pair* %0, i32 0, i32
1, i32 0, i32 0, i32 %idx2<br>
121 %ret = load float* %ptr2<br>
122 ret float %ret<br>
123 }<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><span
class="Apple-converted-space"> </span> <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></div>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</body>
</html>