<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">