<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=http://email.email.llvm.org/c/eJylVFFvmzAQ_jXm5VRkTEjggYekWbVJ3VRNk7a3yoBJvDkY2Yam_fU7G5I2U1ZpWuQA9t19_u47-yrdPJdOWAc1t4LQLaFrsqTzmKYslV2thkYASW9r6xolK5J-mK3hOWrZgOykWxvDnwnLW6W5A8IwesmNIewWzQ6sfBGEFUBWmykQAK2Iu4VOPEGIItkmuGVbkp69Wo1eLPcYMrhTNIbP2wnUzwjbhHGBH3ZATImAIdLwrkGo4Mbu5j1Z_nX9Zfv4ef0D19_sS1bbOc_zx6U6u7qGwQrc5qBHCWMeM-uzpceU-reyCtgCnAYeRHLPvfBaYx4d_BKmEwqU1j1UWInY51gr3u0CJiLCE2MeBouQ0yyly3TpmfslKwTsnestSVHlOxw73VRauVibHc5e8L8UD-Z78VI9vC3WDSDpq8m8m8NJkrhnXMldBynacKwmQ3yfeiKzU6UmneeprUfXgg1oT6fNQDUGjklIL9scWeJLfqr3YVCz__zMz1jOzGs-KoQfk-JNLG-asDIb8HXmXh96ODJ6Mp3IdgI8_aunf5YsVOW6aH-t06zLZkMfGWoDU5X8IcTr820vLXzqOmHg3tf_o-CNMN5tK3q3R6fkn8RsPQsb5EAueB5vkDTvoBKgeycPeEmaC-Hzs4TFu8In14UP4ZdFC8Kz5GSY5LiqPXvNLQ7iTxpdyhs1ZdoUacEjPri9NuXYNm0bDUaVf5x76fZDFdf6gBOlxtPrpjf6p6jxdt9JaweBh_ouS5dZEu3Lqs4WCaOrZV7zJM94keCvovUio3nRsjZSvBLKlpgqYcw3pwCB35hw9P8MZMkow0FzWmRJmsVtk7erRlScp4uqyAVZUHHgUsUex1_pyJQBshp2Fo1KWmdfjdxavJNCBMLI0EmnwmQuPndSd74F-sYyIiVsqEbsEAQPIHYn37yh1h02pql3j1wNIgqsy0D5N-R-s1s>53651</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[optimization] use vector register to init const float value
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
vfdff
</td>
</tr>
</table>
<pre>
test case
```
#include <cstdlib>
void initArray(float *&arr, int size) {
arr = new float[size];
for (int i = 0; i < size; i++) {
arr[i] = rand() / float(RAND_MAX);
}
}
```
gcc use movi v8.2s, 0x30, lsl 24 to avoid type cast in kernel loop body. (clang use mov w22, #805306368), see https://godbolt.org/z/6ePrW9zbP
- gcc
```
movi v8.2s, 0x30, lsl 24
.p2align 3,,7
.L3:
bl rand
scvtf s0, w0
ldr x1, [x21]
fmul s0, s0, s8
str s0, [x1, x19]
add x19, x19, 4
cmp x20, x19
bne .L3
```
- clang
```
mov w22, #805306368
.LBB0_2: // =>This Inner Loop Header: Depth=1
bl rand
scvtf s0, w0
fmov s1, w22 -- can be optimized
ldr x8, [x19]
fmul s0, s0, s1
str s0, [x8, x21]
add x21, x21, #4
cmp x20, x21
b.ne .LBB0_2
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyVVFFvmzAQ_jXm5VQEdqDwwEPSrNqkbpqmSdtbZcAk3hyMbEPT_vqdDUmbKas0yQnYd_fdd99xrnX7XDlhHTTcCpJsSbImebKseUuZ7Bs1tgIIu2usa5WsCfuwWMP_pGULspdubQx_JrTolOYOCMXonBtD6B2aHVj5Iggtgdxu5kAAtCLuFnrxBCGKZJvglm0JO3t1Gr1o4TFkcE_QGF7vZlC_I3QT1gV-yICYEgFDpOF9i1DBjd4vOWnxbf1l-_h5_RPP3-Qlt9ulzvPLpTq7poHRCkxz0JOEqYip9dUmR5b4p7IK6AqcBh5Ecs-D8FpjHT38FqYXCpTWA9TYidjX2Cje7wImIsITpR4Gm1AkGUtylnvm_sgKAXvnBksYqnyPa6fbWisXa7PD3Qv-cvHV_Chf6q9vm3UDSPpqMe_WcJIkHihXctcDQxuu29kQPzBPZHGq1azzsrXN5DqwAe3plAxUa-CYhvKyzZGmvuWnfh9Gtfgv_8UZy5nlzEeF8GNavonlbRtOFgM-ztybwwBHmpxMJ7K9AE__6te_SBa6cl20f_Zp0WWzSR4pagNzl_xHiOPzfS8tfOp7YeDB9_-j4K0w3m0rBrdHp_S_xOw8CxvkQC74Pd4gad5DLUAPTh5wSNoL4YuzhOW7wqfXhQ_hl00LwtP0ZJjluKo9fa0tDuLPGl3KG7UVa0tW8shJp0SFWZdKuJO69_Psp2QSjcPbwYidtA7VxFHzNxE0uscpmy-iiatRRKNR1V8TI91-rONGH3Cj1HR63AxG_0Jc3EprR4HjcJ-xPEujfZWkddrV2apjqSgZr3nHi7ShNM2T1WqV00jxWijr6RJK_bUWIPAdGUeyognFlRRJmaUsi7u26G5bUXPOVnVZCLJKxIFLFXsefpQjUwVK9bizaFRYpX01cmtxFkVQx-Pz0e21qaau7booJK4C8T9DIJ47">