United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-7200233 C2: can't use expand rules for vector instruction rules
JDK-7200233 : C2: can't use expand rules for vector instruction rules

Details
Type:
Bug
Submit Date:
2012-09-21
Status:
Resolved
Updated Date:
2013-04-30
Project Name:
JDK
Resolved Date:
2012-09-26
Component:
hotspot
OS:
generic
Sub-Component:
compiler
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
hs24
Fixed Versions:
hs25 (b03)

Related Reports
Backport:
Backport:
Backport:
Backport:
Backport:
Relates:

Sub Tasks

Description
I'd like to add rules like the following:

instruct Repl2F_reg(vecD dst, regF src) %{
  match(Set dst (ReplicateF src));
  expand %{
    iRegI tmp;
    MoveF2I_reg_reg(tmp, src);
    Repl2F_regI(dst,tmp);
  %}
%}

instruct vsrl4I_regI(vecX dst, vecX src, iRegI shift) %{
  match(Set dst (URShiftVI src (MoveI2F shift)));
  expand %{
    vecX tmp;
    Repl16B_reg(tmp, shift);
    vsrl4I_reg(dst, src, tmp);
  %}
%}

but the generated expand code will crash because _bottom_type is not
set.

                                    

Comments
EVALUATION

I forgot to add vector arithmetic nodes to the check in MatchRule::is_vector() in adlc.
                                     
2012-09-21
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/0702f188baeb
                                     
2012-09-26
URL:   http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/0702f188baeb
User:  kvn
Date:  2012-09-28 19:34:46 +0000

                                     
2012-09-28
URL:   http://hg.openjdk.java.net/hsx/hsx25/hotspot/rev/0702f188baeb
User:  amurillo
Date:  2012-09-28 22:30:08 +0000

                                     
2012-09-28



Hardware and Software, Engineered to Work Together