Ignore:
Timestamp:
Aug 12, 2014, 1:54:54 PM (5 years ago)
Author:
linmengl
Message:

extend template system for i4 and i8.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib_ir/gen/llc_func.pytemplate.ll

    r3985 r3996  
    1212{% endfor %}
    1313
     14{% for i in [0, 1, 17] %}
    1415{% for x in range(0, 4) %}
    15 define <64 x i2> @insertelement_idx0_elt{{ x }}(<64 x i2> %a) {
     16define <64 x i2> @insertelement_idx{{ i }}_elt{{ x }}(<64 x i2> %a) {
    1617entry:
    17   %c = insertelement <64 x i2> %a, i2 {{ x }}, i32 0
     18  %c = insertelement <64 x i2> %a, i2 {{ x }}, i32 {{ i }}
    1819  ret <64 x i2> %c
    1920}
    2021
    21 define <64 x i2> @insertelement_idx1_elt{{ x }}(<64 x i2> %a) {
    22 entry:
    23   %c = insertelement <64 x i2> %a, i2 {{ x }}, i32 1
    24   ret <64 x i2> %c
    25 }
    26 
    27 define <64 x i2> @insertelement_idx17_elt{{ x }}(<64 x i2> %a) {
    28 entry:
    29   %c = insertelement <64 x i2> %a, i2 {{ x }}, i32 17
    30   ret <64 x i2> %c
    31 }
    32 
     22{% endfor %}
    3323{% endfor %}
    3424
     
    4131}
    4232{% endfor %}
     33
     34; v32i4 starts here
     35{% for name in FunctionNamesI4 %}
     36define <32 x i4> @{{name.c}}(<32 x i4> %a, <32 x i4> %b) {
     37entry:
     38  %c = {{ name.op }} <32 x i4> %a, %b
     39  {% if "icmp" in name.op %}
     40  %d = sext <32 x i1> %c to <32 x i4>
     41  ret <32 x i4> %d
     42  {% else %}
     43  ret <32 x i4> %c
     44  {% endif %}
     45}
     46{% endfor %}
     47
     48; v16i8 starts here
     49{% for name in FunctionNamesI8 %}
     50define <16 x i8> @{{name.c}}(<16 x i8> %a, <16 x i8> %b) {
     51entry:
     52  %c = {{ name.op }} <16 x i8> %a, %b
     53  {% if "icmp" in name.op %}
     54  %d = sext <16 x i1> %c to <16 x i8>
     55  ret <16 x i8> %d
     56  {% else %}
     57  ret <16 x i8> %c
     58  {% endif %}
     59}
     60{% endfor %}
Note: See TracChangeset for help on using the changeset viewer.