<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Sam,<div class=""><br class=""></div><div class="">The builtin is defined in lib/SILGen/SILGenBuiltin.cpp, look for the function named&nbsp;emitBuiltinLoadRaw().</div><div class=""><br class=""></div><div class="">However I suspect the problem in this case is not that the builtin is implemented incorrectly (it eventually lowers to an LLVM load instruction) but that something further upstream is going wrong, perhaps with alignment or endianness.</div><div class=""><br class=""></div><div class="">Can you tell us which unit tests are failing specifically?</div><div class=""><br class=""></div><div class="">Slava</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Sep 28, 2017, at 2:16 PM, Sam Ding via swift-dev &lt;<a href="mailto:swift-dev@swift.org" class="">swift-dev@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><p class=""><font size="2" class="">I am testing a test case "KeyPath.swift" on s390x for v4.0 . It is found that " Builtin.loadRaw" as the below of </font><br class=""><font size="2" class=""> "stdlib/public/core/UnsafeRawPointer.swift.gyb" returns a different value than that on x86-64. </font><br class="">
</p><ul class=""><font size="2" class="">  @_inlineable</font><br class=""><font size="2" class="">  public func load&lt;T&gt;(fromByteOffset offset: Int = 0, as type: T.Type) -&gt; T {</font><br class=""><font size="2" class="">    _debugPrecondition(0 == (UInt(bitPattern: self + offset)</font><br class=""><font size="2" class="">        &amp; (UInt(MemoryLayout&lt;T&gt;.alignment) - 1)),</font><br class=""><font size="2" class="">      "load from misaligned raw pointer")</font><br class=""><font size="2" class="">  </font><br class=""><font size="2" class="">    return </font><font size="2" color="#0000FF" class="">Builtin.loadRaw</font><font size="2" class="">((self + offset)._rawValue)       // return a different value on s390x vs x86-64</font><br class=""><font size="2" class="">  }</font><br class=""></ul><font size="2" class="">My debugger (lldb) does not guide me to the detailed of " </font><font size="2" color="#0000FF" class="">Builtin.loadRaw</font><font size="2" class="">". Searching "loadRaw" and finding</font><ul class=""><font size="2" class=""> swift/include/swift/AST/Builtins.def:</font><font size="2" color="#001FE2" class="">BUILTIN_SIL_OPERATION(LoadRaw, "loadRaw", Special)</font><font size="2" class=""> </font></ul><br class=""><font size="2" class="">But  I could not find the definition of this "</font><font size="2" color="#001FE2" class="">LoadRaw</font><font size="2" class="">" from the whole swift v4.</font><br class=""><font size="2" class="">Can anyone give me a hint where  its implementation is?</font><br class=""><br class=""><font size="2" class="">Thanks,</font><br class=""><br class=""><br class=""><font size="2" class="">Sam Ding,</font><br class=""><font size="2" class="">Linux on z Systems  Open Source Ecosystem</font><br class=""><font size="2" class="">IBM Toronto Lab, <br class=""></font><font size="2" color="#0000FF" class="">email: </font><font size="2" class=""><a href="mailto:samding@ca.ibm.com" class="">samding@ca.ibm.com</a></font><br class=""><font size="2" color="#0000FF" class="">phone:</font><font size="2" class=""> (905)413-2947</font><br class="">
</div>
_______________________________________________<br class="">swift-dev mailing list<br class=""><a href="mailto:swift-dev@swift.org" class="">swift-dev@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-dev<br class=""></div></blockquote></div><br class=""></div></body></html>