1 # RUN: llc -mtriple=amdgcn-mesa-mesa3d -run-pass=legalizer %s -o - | FileCheck %s 2 3 --- 4 name: test_insert_lo32_i64 5 body: | 6 bb.0.entry: 7 liveins: $vgpr0_vgpr1, $vgpr2 8 9 ; CHECK-LABEL: name: test_insert_lo32_i64 10 ; CHECK: %2:_(s64) = G_INSERT %0, %1(s32), 0 11 %0:_(s64) = COPY $vgpr0_vgpr1 12 %1:_(s32) = COPY $vgpr2 13 %2:_(s64) = G_INSERT %0, %1, 0 14 S_ENDPGM implicit %2 15 ... 16 --- 17 name: test_insert_hi32_i64 18 body: | 19 bb.0.entry: 20 liveins: $vgpr0_vgpr1, $vgpr2 21 22 ; CHECK-LABEL: name: test_insert_hi32_i64 23 ; CHECK: %2:_(s64) = G_INSERT %0, %1(s32), 32 24 %0:_(s64) = COPY $vgpr0_vgpr1 25 %1:_(s32) = COPY $vgpr2 26 %2:_(s64) = G_INSERT %0, %1, 32 27 S_ENDPGM implicit %2 28 ... 29 30 --- 31 name: test_insert_dword0_i128 32 body: | 33 bb.0.entry: 34 liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4 35 36 ; CHECK-LABEL: name: test_insert_dword0_i128 37 ; CHECK: %2:_(s128) = G_INSERT %0, %1(s32), 0 38 %0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 39 %1:_(s32) = COPY $vgpr4 40 %2:_(s128) = G_INSERT %0, %1, 0 41 S_ENDPGM implicit %2 42 ... 43 44 --- 45 name: test_insert_dword1_i128 46 body: | 47 bb.0.entry: 48 liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4 49 50 ; CHECK-LABEL: name: test_insert_dword1_i128 51 ; CHECK: %2:_(s128) = G_INSERT %0, %1(s32), 32 52 %0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 53 %1:_(s32) = COPY $vgpr4 54 %2:_(s128) = G_INSERT %0, %1, 32 55 S_ENDPGM implicit %2 56 ... 57 58 --- 59 name: test_insert_dword2_i128 60 body: | 61 bb.0.entry: 62 liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4 63 64 ; CHECK-LABEL: name: test_insert_dword2_i128 65 ; CHECK: %2:_(s128) = G_INSERT %0, %1(s32), 64 66 %0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 67 %1:_(s32) = COPY $vgpr4 68 %2:_(s128) = G_INSERT %0, %1, 64 69 S_ENDPGM implicit %2 70 ... 71 72 --- 73 name: test_insert_dword3_i128 74 body: | 75 bb.0.entry: 76 liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4 77 78 ; CHECK-LABEL: name: test_insert_dword3_i128 79 ; CHECK: %2:_(s128) = G_INSERT %0, %1(s32), 96 80 %0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 81 %1:_(s32) = COPY $vgpr4 82 %2:_(s128) = G_INSERT %0, %1, 96 83 S_ENDPGM implicit %2 84 ... 85 --- 86 name: test_insert_dword0_i96 87 body: | 88 bb.0.entry: 89 liveins: $vgpr0_vgpr1_vgpr2, $vgpr3 90 91 ; CHECK-LABEL: name: test_insert_dword0_i96 92 ; CHECK: %2:_(s96) = G_INSERT %0, %1(s32), 0 93 %0:_(s96) = COPY $vgpr0_vgpr1_vgpr2 94 %1:_(s32) = COPY $vgpr3 95 %2:_(s96) = G_INSERT %0, %1, 0 96 S_ENDPGM implicit %2 97 ... 98 --- 99 name: test_insert_dword1_i96 100 body: | 101 bb.0.entry: 102 liveins: $vgpr0_vgpr1_vgpr2, $vgpr3 103 104 ; CHECK-LABEL: name: test_insert_dword1_i96 105 ; CHECK: %2:_(s96) = G_INSERT %0, %1(s32), 32 106 %0:_(s96) = COPY $vgpr0_vgpr1_vgpr2 107 %1:_(s32) = COPY $vgpr3 108 %2:_(s96) = G_INSERT %0, %1, 32 109 S_ENDPGM implicit %2 110 ... 111 --- 112 name: test_insert_dword2_i96 113 body: | 114 bb.0.entry: 115 liveins: $vgpr0_vgpr1_vgpr2, $vgpr3 116 117 ; CHECK-LABEL: name: test_insert_dword2_i96 118 ; CHECK: %2:_(s96) = G_INSERT %0, %1(s32), 64 119 %0:_(s96) = COPY $vgpr0_vgpr1_vgpr2 120 %1:_(s32) = COPY $vgpr3 121 %2:_(s96) = G_INSERT %0, %1, 64 122 S_ENDPGM implicit %2 123 ... 124