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