[prev in list] [next in list] [prev in thread] [next in thread] 

List:       llvm-bugs
Subject:    [llvm-bugs] [Bug 74001] memset doesn't initialize the padding bytes of float3
From:       LLVM Bugs via llvm-bugs <llvm-bugs () lists ! llvm ! org>
Date:       2023-11-30 22:46:28
Message-ID: 20231130224628.02953ab1d0adec29 () email ! llvm ! org
[Download RAW message or body]

[Attachment #2 (text/html)]

<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/74001>74001</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            memset doesn&apos;t initialize the padding bytes of float3
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang:codegen
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          ahatanak
      </td>
    </tr>
</table>

<pre>
    $ cat test.c
```
#include &lt;string.h&gt;

typedef __attribute__((__ext_vector_type__(3))) float float3;

float3 make_float3(float x, float y, float z) {
  float3 r;
  memset(&amp;r, 0, sizeof(float3));
  r.x = x;
  r.y = y;
  r.z = z;
  return r;
}
```
The size of float3 is 16-bytes and the padding bytes should be set to zero, but they \
aren&apos;t.

$ clang -S -o -  test.c -Os -emit-llvm
```
define &lt;3 x float&gt; @make_float3(float noundef %0, float noundef %1, float \
noundef %2) local_unnamed_addr #0 {  %4 = insertelement &lt;3 x float&gt; undef, \
float %0, i64 0  %5 = insertelement &lt;3 x float&gt; %4, float %1, i64 1
  %6 = insertelement &lt;3 x float&gt; %5, float %2, i64 2
 ret &lt;3 x float&gt; %6
}
```

This makes it impossible to compare buffers of float3 objects byte-wise.
</pre>
<img width="1px" height="1px" alt="" \
src="http://email.email.llvm.org/o/eJyMlEHPmzgQhn-NuYxAxgZCDhy-9muue9i9I4OH4K2xI9t0k_z \
6FYY0RI2qSsgJg-fhZeYdC-_V2SA2pPxCys9EzGG0rhGjCMKI70ln5a0hrIBeBAjoQ9YT-knoB6nodq23jCvT6 \
1kiEP7VB6fMORsJ_7Y9jmu4XVDiAG0rQnCqmwO2LWE1YXXb4jW0P7AP1rXLvviAE3ZcLxi0FWFdOeFf9tg1CJP \
4ju22gdXr_ithX7fU2_PvfQGSwwaBjQruJxdgwsljiNoqt2TSZfHqjnZ40B_qnlkuuwLhn3B9id1i7PYSu8fYf \
R_DMDuzE0EOn29L_c-IUQjY4aFcecirtLsF9CCMhDAiXISUypxhjfrRzlpCh-AxQLBwR2eXT-rmsGy_gXBoCDu \
EbF_a2HktzBnSvyG1kMJmAkj_8pDipEKq9Y_prVCJgzLRDxyuq1TCvwEp6LtWGTubxRyElfTZql00fxtlSy-17 \
YVuZ2PEhLIVUjogjNN9jwkri1hzZTy6gBonNOEXcZH7fNFDjKoKoDtU-Qeo5Y0vpPxBynek6s9I5QuJPUhsIzl \
8m1X93kkPPykfh8eDCqCmi_VedRoXl_R2ugiH0M3DgM7vLGe7f7EPPtor_U95zBLZcHnkR5Fgkx9ozuuC13UyN \
j3rhx47LApRCd6VdS_LY1UzOnBW9QVNVMMo43nOKWNFxeqMsmPJRZdLKiT27EgKipNQOlu8lll3TpT3MzaHgtI \
80aJD7eMJxlh0K-EfvZV4XhzNlmPNNUtm2s1nTwqqlQ_-yQoqaGzWiQdp0cc5AGVUUEIvk_brPP0sRDI73YwhXDzhH4SdCDudVRjnLuvtRNgpTsf6k16cXYpG2CnK94Sd4hf8HwAA__8OHaJf">



[Attachment #3 (text/plain)]

_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic