<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Creating vector literals from smaller vector literals doesn't work with -cl-std=c++"
   href="https://bugs.llvm.org/show_bug.cgi?id=41010">41010</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Creating vector literals from smaller vector literals doesn't work with -cl-std=c++
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>OpenCL
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedclangbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>kevin.petit@arm.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>anastasia.stulova@arm.com, llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Trying to compile the following test program:

-------------------------------------------------------
kernel void test(__global float4 *out)
{
    float4 a = (float4)(1.0f, 2.0f, 3.0f, 4.0f);
    float4 v = (float4)(a.s23, a.s01);
    *out = v;
}
-------------------------------------------------------

with the following command line (rev 355676):

clang -cc1 -triple spir64-unknown-unknown -finclude-default-header -emit-llvm
-x cl -cl-std=c++ test.cl

leads to the following error:

-------------------------------------------------------
test.cl:5:25: error: cannot initialize a vector element of type 'float' with an
lvalue of type 'float2' (vector of 2 'float' values)
    float4 v = (float4)(a.s23, a.s01);
                        ^~~~~
test.cl:5:32: error: cannot initialize a vector element of type 'float' with an
lvalue of type 'float2' (vector of 2 'float' values)
    float4 v = (float4)(a.s23, a.s01);
                               ^~~~~
2 errors generated.
-------------------------------------------------------</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>