Home | History | Annotate | Download | only in GlobalISel
      1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
      2 # RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=legalizer %s -o - | FileCheck %s
      3 
      4 ---
      5 name: test_extract_lo32_i64
      6 body: |
      7   bb.0.entry:
      8     liveins: $vgpr0_vgpr1
      9 
     10     ; CHECK-LABEL: name: test_extract_lo32_i64
     11     ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1
     12     ; CHECK: [[EXTRACT:%[0-9]+]]:_(s32) = G_EXTRACT [[COPY]](s64), 0
     13     ; CHECK: S_ENDPGM implicit [[EXTRACT]](s32)
     14     %0:_(s64) = COPY $vgpr0_vgpr1
     15     %1:_(s32) = G_EXTRACT %0, 0
     16     S_ENDPGM implicit %1
     17 ...
     18 ---
     19 name: test_extract_hi32_i64
     20 body: |
     21   bb.0.entry:
     22     liveins: $vgpr0_vgpr1
     23 
     24     ; CHECK-LABEL: name: test_extract_hi32_i64
     25     ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1
     26     ; CHECK: [[EXTRACT:%[0-9]+]]:_(s32) = G_EXTRACT [[COPY]](s64), 32
     27     ; CHECK: S_ENDPGM implicit [[EXTRACT]](s32)
     28     %0:_(s64) = COPY $vgpr0_vgpr1
     29     %1:_(s32) = G_EXTRACT %0, 32
     30      S_ENDPGM implicit %1
     31 ...
     32 
     33 ---
     34 name: test_extract_dword0_i128
     35 body: |
     36   bb.0.entry:
     37     liveins: $vgpr0_vgpr1
     38 
     39     ; CHECK-LABEL: name: test_extract_dword0_i128
     40     ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1
     41     ; CHECK: [[EXTRACT:%[0-9]+]]:_(s32) = G_EXTRACT [[COPY]](s64), 0
     42     ; CHECK: S_ENDPGM implicit [[EXTRACT]](s32)
     43     %0:_(s64) = COPY $vgpr0_vgpr1
     44     %1:_(s32) = G_EXTRACT %0, 0
     45     S_ENDPGM implicit %1
     46 ...
     47 
     48 ---
     49 name: test_extract_dword1_i128
     50 body: |
     51   bb.0.entry:
     52     liveins: $vgpr0_vgpr1_vgpr2_vgpr3
     53 
     54     ; CHECK-LABEL: name: test_extract_dword1_i128
     55     ; CHECK: [[COPY:%[0-9]+]]:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
     56     ; CHECK: [[EXTRACT:%[0-9]+]]:_(s32) = G_EXTRACT [[COPY]](s128), 32
     57     ; CHECK: S_ENDPGM implicit [[EXTRACT]](s32)
     58     %0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
     59     %1:_(s32) = G_EXTRACT %0, 32
     60     S_ENDPGM implicit %1
     61 ...
     62 
     63 ---
     64 name: test_extract_dword2_i128
     65 body: |
     66   bb.0.entry:
     67     liveins: $vgpr0_vgpr1_vgpr2_vgpr3
     68 
     69     ; CHECK-LABEL: name: test_extract_dword2_i128
     70     ; CHECK: [[COPY:%[0-9]+]]:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
     71     ; CHECK: [[EXTRACT:%[0-9]+]]:_(s32) = G_EXTRACT [[COPY]](s128), 64
     72     ; CHECK: S_ENDPGM implicit [[EXTRACT]](s32)
     73     %0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
     74     %1:_(s32) = G_EXTRACT %0, 64
     75     S_ENDPGM implicit %1
     76 ...
     77 
     78 ---
     79 name: test_extract_dword3_i128
     80 body: |
     81   bb.0.entry:
     82     liveins: $vgpr0_vgpr1_vgpr2_vgpr3
     83 
     84     ; CHECK-LABEL: name: test_extract_dword3_i128
     85     ; CHECK: [[COPY:%[0-9]+]]:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
     86     ; CHECK: [[EXTRACT:%[0-9]+]]:_(s32) = G_EXTRACT [[COPY]](s128), 96
     87     ; CHECK: S_ENDPGM implicit [[EXTRACT]](s32)
     88     %0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
     89     %1:_(s32) = G_EXTRACT %0, 96
     90      S_ENDPGM implicit %1
     91 ...
     92 ---
     93 name: test_extract_dword2_i96
     94 body: |
     95   bb.0.entry:
     96     liveins: $vgpr0_vgpr1_vgpr2
     97 
     98     ; CHECK-LABEL: name: test_extract_dword2_i96
     99     ; CHECK: [[COPY:%[0-9]+]]:_(s96) = COPY $vgpr0_vgpr1_vgpr2
    100     ; CHECK: [[EXTRACT:%[0-9]+]]:_(s32) = G_EXTRACT [[COPY]](s96), 64
    101     ; CHECK: S_ENDPGM implicit [[EXTRACT]](s32)
    102     %0:_(s96) = COPY $vgpr0_vgpr1_vgpr2
    103     %1:_(s32) = G_EXTRACT %0, 64
    104     S_ENDPGM implicit %1
    105 ...
    106