Home | History | Annotate | Download | only in AArch64
      1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
      2 # RUN: llc -mtriple=aarch64-apple-ios -run-pass=greedy -run-pass=virtregrewriter %s -o - | FileCheck %s
      3 ---
      4 name: func0
      5 body: |
      6   bb.0:
      7     ; Make sure we don't clobber q3 when we expand the bundle
      8     ; CHECK-LABEL: name: func0
      9     ; CHECK: $x0 = IMPLICIT_DEF
     10     ; CHECK: $q0_q1_q2_q3 = IMPLICIT_DEF
     11     ; CHECK: $q4 = COPY $q3
     12     ; CHECK: $q1_q2_q3 = COPY $q0_q1_q2
     13     ; CHECK: ST4i64 $q1_q2_q3_q4, 0, $x0
     14     $x0 = IMPLICIT_DEF
     15     $q0_q1_q2_q3 = IMPLICIT_DEF
     16     $q1_q2_q3 = COPY $q0_q1_q2 {
     17       $q4 = COPY $q3
     18     }
     19     ST4i64 $q1_q2_q3_q4, 0, $x0
     20 
     21 ...
     22 ---
     23 name: func1
     24 body: |
     25   bb.0:
     26     ; If it was already ordered, make sure we don't break it
     27     ; CHECK-LABEL: name: func1
     28     ; CHECK: $x0 = IMPLICIT_DEF
     29     ; CHECK: $q0_q1_q2_q3 = IMPLICIT_DEF
     30     ; CHECK: $q4 = COPY $q3
     31     ; CHECK: $q1_q2_q3 = COPY $q0_q1_q2
     32     ; CHECK: ST4i64 $q1_q2_q3_q4, 0, $x0
     33     $x0 = IMPLICIT_DEF
     34     $q0_q1_q2_q3 = IMPLICIT_DEF
     35     $q4 = COPY $q3 {
     36       $q1_q2_q3 = COPY $q0_q1_q2
     37     }
     38     ST4i64 $q1_q2_q3_q4, 0, $x0
     39 
     40 ...
     41 ---
     42 name: func2
     43 body: |
     44   bb.0:
     45     ; A bit less realistic, but check that we handle multiple nodes
     46     ; CHECK-LABEL: name: func2
     47     ; CHECK: $x0 = IMPLICIT_DEF
     48     ; CHECK: $q0_q1_q2_q3 = IMPLICIT_DEF
     49     ; CHECK: $q3 = COPY $q2
     50     ; CHECK: $q4 = COPY $q1
     51     ; CHECK: $q1_q2 = COPY $q0_q1
     52     ; CHECK: ST4i64 $q1_q2_q3_q4, 0, $x0
     53     $x0 = IMPLICIT_DEF
     54     $q0_q1_q2_q3 = IMPLICIT_DEF
     55     $q1_q2 = COPY $q0_q1 {
     56       $q3 = COPY $q2
     57       $q4 = COPY $q1
     58     }
     59     ST4i64 $q1_q2_q3_q4, 0, $x0
     60 
     61 ...
     62 ---
     63 name: func3
     64 body: |
     65   bb.0:
     66     ; If there was nothing wrong, don't change the order for no reason
     67     ; CHECK-LABEL: name: func3
     68     ; CHECK: $x0 = IMPLICIT_DEF
     69     ; CHECK: $q1_q2_q3_q4 = IMPLICIT_DEF
     70     ; CHECK: $q0_q1 = COPY $q1_q2
     71     ; CHECK: $q2_q3 = COPY $q3_q4
     72     ; CHECK: ST4i64 $q0_q1_q2_q3, 0, $x0
     73     $x0 = IMPLICIT_DEF
     74     $q1_q2_q3_q4 = IMPLICIT_DEF
     75     $q0_q1 = COPY $q1_q2 {
     76       $q2_q3 = COPY $q3_q4
     77     }
     78     ST4i64 $q0_q1_q2_q3, 0, $x0
     79 
     80 ...
     81