[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'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 <string.h>
typedef __attribute__((__ext_vector_type__(3))) float float3;
float3 make_float3(float x, float y, float z) {
float3 r;
memset(&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't.
$ clang -S -o - test.c -Os -emit-llvm
```
define <3 x float> @make_float3(float noundef %0, float noundef %1, float \
noundef %2) local_unnamed_addr #0 { %4 = insertelement <3 x float> undef, \
float %0, i64 0 %5 = insertelement <3 x float> %4, float %1, i64 1
%6 = insertelement <3 x float> %5, float %2, i64 2
ret <3 x float> %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