brintos

brintos / llvm-project-archived public Read only

0
0
Text · 18.6 KiB · 40bb8a8 Raw
345 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2; RUN: llc -mtriple=aarch64-linux-gnu -O0 -stop-after=irtranslator -verify-machineinstrs -o - %s | FileCheck %s3 4define i12 @v1i12(<1 x i12> %v) {5  ; CHECK-LABEL: name: v1i126  ; CHECK: bb.1 (%ir-block.0):7  ; CHECK-NEXT:   liveins: $w08  ; CHECK-NEXT: {{  $}}9  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $w010  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(s12) = G_TRUNC [[COPY]](s32)11  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC]](s12)12  ; CHECK-NEXT:   $w0 = COPY [[ANYEXT]](s32)13  ; CHECK-NEXT:   RET_ReallyLR implicit $w014  %r = extractelement <1 x i12> %v, i32 015  ret i12 %r16}17 18define i12 @v2i12(<2 x i12> %v) {19  ; CHECK-LABEL: name: v2i1220  ; CHECK: bb.1 (%ir-block.0):21  ; CHECK-NEXT:   liveins: $d022  ; CHECK-NEXT: {{  $}}23  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d024  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(<2 x s12>) = G_TRUNC [[COPY]](<2 x s32>)25  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 126  ; CHECK-NEXT:   [[EVEC:%[0-9]+]]:_(s12) = G_EXTRACT_VECTOR_ELT [[TRUNC]](<2 x s12>), [[C]](s64)27  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[EVEC]](s12)28  ; CHECK-NEXT:   $w0 = COPY [[ANYEXT]](s32)29  ; CHECK-NEXT:   RET_ReallyLR implicit $w030  %r = extractelement <2 x i12> %v, i32 131  ret i12 %r32}33 34define i12 @v3i12(<3 x i12> %v) {35  ; CHECK-LABEL: name: v3i1236  ; CHECK: bb.1 (%ir-block.0):37  ; CHECK-NEXT:   liveins: $w0, $w1, $w238  ; CHECK-NEXT: {{  $}}39  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $w040  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s32) = COPY $w141  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s32) = COPY $w242  ; CHECK-NEXT:   [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32)43  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(<3 x s12>) = G_TRUNC [[BUILD_VECTOR]](<3 x s32>)44  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 145  ; CHECK-NEXT:   [[EVEC:%[0-9]+]]:_(s12) = G_EXTRACT_VECTOR_ELT [[TRUNC]](<3 x s12>), [[C]](s64)46  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[EVEC]](s12)47  ; CHECK-NEXT:   $w0 = COPY [[ANYEXT]](s32)48  ; CHECK-NEXT:   RET_ReallyLR implicit $w049  %r = extractelement <3 x i12> %v, i32 150  ret i12 %r51}52 53define i12 @v4i12(<4 x i12> %v) {54  ; CHECK-LABEL: name: v4i1255  ; CHECK: bb.1 (%ir-block.0):56  ; CHECK-NEXT:   liveins: $d057  ; CHECK-NEXT: {{  $}}58  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d059  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(<4 x s12>) = G_TRUNC [[COPY]](<4 x s16>)60  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 161  ; CHECK-NEXT:   [[EVEC:%[0-9]+]]:_(s12) = G_EXTRACT_VECTOR_ELT [[TRUNC]](<4 x s12>), [[C]](s64)62  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[EVEC]](s12)63  ; CHECK-NEXT:   $w0 = COPY [[ANYEXT]](s32)64  ; CHECK-NEXT:   RET_ReallyLR implicit $w065  %r = extractelement <4 x i12> %v, i32 166  ret i12 %r67}68 69define i12 @v5i12(<5 x i12> %v) {70  ; CHECK-LABEL: name: v5i1271  ; CHECK: bb.1 (%ir-block.0):72  ; CHECK-NEXT:   liveins: $w0, $w1, $w2, $w3, $w473  ; CHECK-NEXT: {{  $}}74  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $w075  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s32) = COPY $w176  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s32) = COPY $w277  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:_(s32) = COPY $w378  ; CHECK-NEXT:   [[COPY4:%[0-9]+]]:_(s32) = COPY $w479  ; CHECK-NEXT:   [[BUILD_VECTOR:%[0-9]+]]:_(<5 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32)80  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(<5 x s12>) = G_TRUNC [[BUILD_VECTOR]](<5 x s32>)81  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 182  ; CHECK-NEXT:   [[EVEC:%[0-9]+]]:_(s12) = G_EXTRACT_VECTOR_ELT [[TRUNC]](<5 x s12>), [[C]](s64)83  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[EVEC]](s12)84  ; CHECK-NEXT:   $w0 = COPY [[ANYEXT]](s32)85  ; CHECK-NEXT:   RET_ReallyLR implicit $w086  %r = extractelement <5 x i12> %v, i32 187  ret i12 %r88}89 90define i12 @v6i12(<6 x i12> %v) {91  ; CHECK-LABEL: name: v6i1292  ; CHECK: bb.1 (%ir-block.0):93  ; CHECK-NEXT:   liveins: $w0, $w1, $w2, $w3, $w4, $w594  ; CHECK-NEXT: {{  $}}95  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $w096  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s32) = COPY $w197  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s32) = COPY $w298  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:_(s32) = COPY $w399  ; CHECK-NEXT:   [[COPY4:%[0-9]+]]:_(s32) = COPY $w4100  ; CHECK-NEXT:   [[COPY5:%[0-9]+]]:_(s32) = COPY $w5101  ; CHECK-NEXT:   [[BUILD_VECTOR:%[0-9]+]]:_(<6 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32)102  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(<6 x s12>) = G_TRUNC [[BUILD_VECTOR]](<6 x s32>)103  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1104  ; CHECK-NEXT:   [[EVEC:%[0-9]+]]:_(s12) = G_EXTRACT_VECTOR_ELT [[TRUNC]](<6 x s12>), [[C]](s64)105  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[EVEC]](s12)106  ; CHECK-NEXT:   $w0 = COPY [[ANYEXT]](s32)107  ; CHECK-NEXT:   RET_ReallyLR implicit $w0108  %r = extractelement <6 x i12> %v, i32 1109  ret i12 %r110}111 112define i12 @v7i12(<7 x i12> %v) {113  ; CHECK-LABEL: name: v7i12114  ; CHECK: bb.1 (%ir-block.0):115  ; CHECK-NEXT:   liveins: $w0, $w1, $w2, $w3, $w4, $w5, $w6116  ; CHECK-NEXT: {{  $}}117  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $w0118  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s32) = COPY $w1119  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s32) = COPY $w2120  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:_(s32) = COPY $w3121  ; CHECK-NEXT:   [[COPY4:%[0-9]+]]:_(s32) = COPY $w4122  ; CHECK-NEXT:   [[COPY5:%[0-9]+]]:_(s32) = COPY $w5123  ; CHECK-NEXT:   [[COPY6:%[0-9]+]]:_(s32) = COPY $w6124  ; CHECK-NEXT:   [[BUILD_VECTOR:%[0-9]+]]:_(<7 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32)125  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(<7 x s12>) = G_TRUNC [[BUILD_VECTOR]](<7 x s32>)126  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1127  ; CHECK-NEXT:   [[EVEC:%[0-9]+]]:_(s12) = G_EXTRACT_VECTOR_ELT [[TRUNC]](<7 x s12>), [[C]](s64)128  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[EVEC]](s12)129  ; CHECK-NEXT:   $w0 = COPY [[ANYEXT]](s32)130  ; CHECK-NEXT:   RET_ReallyLR implicit $w0131  %r = extractelement <7 x i12> %v, i32 1132  ret i12 %r133}134 135define i12 @v8i12(<8 x i12> %v) {136  ; CHECK-LABEL: name: v8i12137  ; CHECK: bb.1 (%ir-block.0):138  ; CHECK-NEXT:   liveins: $q0139  ; CHECK-NEXT: {{  $}}140  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0141  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(<8 x s12>) = G_TRUNC [[COPY]](<8 x s16>)142  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1143  ; CHECK-NEXT:   [[EVEC:%[0-9]+]]:_(s12) = G_EXTRACT_VECTOR_ELT [[TRUNC]](<8 x s12>), [[C]](s64)144  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[EVEC]](s12)145  ; CHECK-NEXT:   $w0 = COPY [[ANYEXT]](s32)146  ; CHECK-NEXT:   RET_ReallyLR implicit $w0147  %r = extractelement <8 x i12> %v, i32 1148  ret i12 %r149}150 151define i12 @v12i12(<12 x i12> %v) {152  ; CHECK-LABEL: name: v12i12153  ; CHECK: bb.1 (%ir-block.0):154  ; CHECK-NEXT:   liveins: $w0, $w1, $w2, $w3, $w4, $w5, $w6, $w7155  ; CHECK-NEXT: {{  $}}156  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $w0157  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s32) = COPY $w1158  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s32) = COPY $w2159  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:_(s32) = COPY $w3160  ; CHECK-NEXT:   [[COPY4:%[0-9]+]]:_(s32) = COPY $w4161  ; CHECK-NEXT:   [[COPY5:%[0-9]+]]:_(s32) = COPY $w5162  ; CHECK-NEXT:   [[COPY6:%[0-9]+]]:_(s32) = COPY $w6163  ; CHECK-NEXT:   [[COPY7:%[0-9]+]]:_(s32) = COPY $w7164  ; CHECK-NEXT:   [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.3165  ; CHECK-NEXT:   [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX]](p0) :: (invariant load (s32) from %fixed-stack.3, align 16)166  ; CHECK-NEXT:   [[FRAME_INDEX1:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.2167  ; CHECK-NEXT:   [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX1]](p0) :: (invariant load (s32) from %fixed-stack.2, align 8)168  ; CHECK-NEXT:   [[FRAME_INDEX2:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.1169  ; CHECK-NEXT:   [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX2]](p0) :: (invariant load (s32) from %fixed-stack.1, align 16)170  ; CHECK-NEXT:   [[FRAME_INDEX3:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.0171  ; CHECK-NEXT:   [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX3]](p0) :: (invariant load (s32) from %fixed-stack.0, align 8)172  ; CHECK-NEXT:   [[BUILD_VECTOR:%[0-9]+]]:_(<12 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32), [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32), [[LOAD3]](s32)173  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(<12 x s12>) = G_TRUNC [[BUILD_VECTOR]](<12 x s32>)174  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1175  ; CHECK-NEXT:   [[EVEC:%[0-9]+]]:_(s12) = G_EXTRACT_VECTOR_ELT [[TRUNC]](<12 x s12>), [[C]](s64)176  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[EVEC]](s12)177  ; CHECK-NEXT:   $w0 = COPY [[ANYEXT]](s32)178  ; CHECK-NEXT:   RET_ReallyLR implicit $w0179  %r = extractelement <12 x i12> %v, i32 1180  ret i12 %r181}182 183 184define i100 @v1i100(<1 x i100> %v) {185  ; CHECK-LABEL: name: v1i100186  ; CHECK: bb.1 (%ir-block.0):187  ; CHECK-NEXT:   liveins: $x0, $x1188  ; CHECK-NEXT: {{  $}}189  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s64) = COPY $x0190  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s64) = COPY $x1191  ; CHECK-NEXT:   [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY]](s64), [[COPY1]](s64)192  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(s100) = G_TRUNC [[MV]](s128)193  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s128) = G_ANYEXT [[TRUNC]](s100)194  ; CHECK-NEXT:   [[UV:%[0-9]+]]:_(s64), [[UV1:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[ANYEXT]](s128)195  ; CHECK-NEXT:   $x0 = COPY [[UV]](s64)196  ; CHECK-NEXT:   $x1 = COPY [[UV1]](s64)197  ; CHECK-NEXT:   RET_ReallyLR implicit $x0, implicit $x1198  %r = extractelement <1 x i100> %v, i32 0199  ret i100 %r200}201 202define i100 @v2i100(<2 x i100> %v) {203  ; CHECK-LABEL: name: v2i100204  ; CHECK: bb.1 (%ir-block.0):205  ; CHECK-NEXT:   liveins: $x0, $x1, $x2, $x3206  ; CHECK-NEXT: {{  $}}207  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s64) = COPY $x0208  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s64) = COPY $x1209  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s64) = COPY $x2210  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:_(s64) = COPY $x3211  ; CHECK-NEXT:   [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY]](s64), [[COPY1]](s64)212  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(s100) = G_TRUNC [[MV]](s128)213  ; CHECK-NEXT:   [[MV1:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY2]](s64), [[COPY3]](s64)214  ; CHECK-NEXT:   [[TRUNC1:%[0-9]+]]:_(s100) = G_TRUNC [[MV1]](s128)215  ; CHECK-NEXT:   [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s100>) = G_BUILD_VECTOR [[TRUNC]](s100), [[TRUNC1]](s100)216  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1217  ; CHECK-NEXT:   [[EVEC:%[0-9]+]]:_(s100) = G_EXTRACT_VECTOR_ELT [[BUILD_VECTOR]](<2 x s100>), [[C]](s64)218  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s128) = G_ANYEXT [[EVEC]](s100)219  ; CHECK-NEXT:   [[UV:%[0-9]+]]:_(s64), [[UV1:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[ANYEXT]](s128)220  ; CHECK-NEXT:   $x0 = COPY [[UV]](s64)221  ; CHECK-NEXT:   $x1 = COPY [[UV1]](s64)222  ; CHECK-NEXT:   RET_ReallyLR implicit $x0, implicit $x1223  %r = extractelement <2 x i100> %v, i32 1224  ret i100 %r225}226 227define i100 @v3i100(<3 x i100> %v) {228  ; CHECK-LABEL: name: v3i100229  ; CHECK: bb.1 (%ir-block.0):230  ; CHECK-NEXT:   liveins: $x0, $x1, $x2, $x3, $x4, $x5231  ; CHECK-NEXT: {{  $}}232  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s64) = COPY $x0233  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s64) = COPY $x1234  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s64) = COPY $x2235  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:_(s64) = COPY $x3236  ; CHECK-NEXT:   [[COPY4:%[0-9]+]]:_(s64) = COPY $x4237  ; CHECK-NEXT:   [[COPY5:%[0-9]+]]:_(s64) = COPY $x5238  ; CHECK-NEXT:   [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY]](s64), [[COPY1]](s64)239  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(s100) = G_TRUNC [[MV]](s128)240  ; CHECK-NEXT:   [[MV1:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY2]](s64), [[COPY3]](s64)241  ; CHECK-NEXT:   [[TRUNC1:%[0-9]+]]:_(s100) = G_TRUNC [[MV1]](s128)242  ; CHECK-NEXT:   [[MV2:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY4]](s64), [[COPY5]](s64)243  ; CHECK-NEXT:   [[TRUNC2:%[0-9]+]]:_(s100) = G_TRUNC [[MV2]](s128)244  ; CHECK-NEXT:   [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s100>) = G_BUILD_VECTOR [[TRUNC]](s100), [[TRUNC1]](s100), [[TRUNC2]](s100)245  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1246  ; CHECK-NEXT:   [[EVEC:%[0-9]+]]:_(s100) = G_EXTRACT_VECTOR_ELT [[BUILD_VECTOR]](<3 x s100>), [[C]](s64)247  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s128) = G_ANYEXT [[EVEC]](s100)248  ; CHECK-NEXT:   [[UV:%[0-9]+]]:_(s64), [[UV1:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[ANYEXT]](s128)249  ; CHECK-NEXT:   $x0 = COPY [[UV]](s64)250  ; CHECK-NEXT:   $x1 = COPY [[UV1]](s64)251  ; CHECK-NEXT:   RET_ReallyLR implicit $x0, implicit $x1252  %r = extractelement <3 x i100> %v, i32 1253  ret i100 %r254}255 256define i100 @v4i100(<4 x i100> %v) {257  ; CHECK-LABEL: name: v4i100258  ; CHECK: bb.1 (%ir-block.0):259  ; CHECK-NEXT:   liveins: $x0, $x1, $x2, $x3, $x4, $x5, $x6, $x7260  ; CHECK-NEXT: {{  $}}261  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s64) = COPY $x0262  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s64) = COPY $x1263  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s64) = COPY $x2264  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:_(s64) = COPY $x3265  ; CHECK-NEXT:   [[COPY4:%[0-9]+]]:_(s64) = COPY $x4266  ; CHECK-NEXT:   [[COPY5:%[0-9]+]]:_(s64) = COPY $x5267  ; CHECK-NEXT:   [[COPY6:%[0-9]+]]:_(s64) = COPY $x6268  ; CHECK-NEXT:   [[COPY7:%[0-9]+]]:_(s64) = COPY $x7269  ; CHECK-NEXT:   [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY]](s64), [[COPY1]](s64)270  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(s100) = G_TRUNC [[MV]](s128)271  ; CHECK-NEXT:   [[MV1:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY2]](s64), [[COPY3]](s64)272  ; CHECK-NEXT:   [[TRUNC1:%[0-9]+]]:_(s100) = G_TRUNC [[MV1]](s128)273  ; CHECK-NEXT:   [[MV2:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY4]](s64), [[COPY5]](s64)274  ; CHECK-NEXT:   [[TRUNC2:%[0-9]+]]:_(s100) = G_TRUNC [[MV2]](s128)275  ; CHECK-NEXT:   [[MV3:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY6]](s64), [[COPY7]](s64)276  ; CHECK-NEXT:   [[TRUNC3:%[0-9]+]]:_(s100) = G_TRUNC [[MV3]](s128)277  ; CHECK-NEXT:   [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s100>) = G_BUILD_VECTOR [[TRUNC]](s100), [[TRUNC1]](s100), [[TRUNC2]](s100), [[TRUNC3]](s100)278  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1279  ; CHECK-NEXT:   [[EVEC:%[0-9]+]]:_(s100) = G_EXTRACT_VECTOR_ELT [[BUILD_VECTOR]](<4 x s100>), [[C]](s64)280  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s128) = G_ANYEXT [[EVEC]](s100)281  ; CHECK-NEXT:   [[UV:%[0-9]+]]:_(s64), [[UV1:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[ANYEXT]](s128)282  ; CHECK-NEXT:   $x0 = COPY [[UV]](s64)283  ; CHECK-NEXT:   $x1 = COPY [[UV1]](s64)284  ; CHECK-NEXT:   RET_ReallyLR implicit $x0, implicit $x1285  %r = extractelement <4 x i100> %v, i32 1286  ret i100 %r287}288 289define i100 @v8i100(<8 x i100> %v) {290  ; CHECK-LABEL: name: v8i100291  ; CHECK: bb.1 (%ir-block.0):292  ; CHECK-NEXT:   liveins: $x0, $x1, $x2, $x3, $x4, $x5, $x6, $x7293  ; CHECK-NEXT: {{  $}}294  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s64) = COPY $x0295  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s64) = COPY $x1296  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s64) = COPY $x2297  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:_(s64) = COPY $x3298  ; CHECK-NEXT:   [[COPY4:%[0-9]+]]:_(s64) = COPY $x4299  ; CHECK-NEXT:   [[COPY5:%[0-9]+]]:_(s64) = COPY $x5300  ; CHECK-NEXT:   [[COPY6:%[0-9]+]]:_(s64) = COPY $x6301  ; CHECK-NEXT:   [[COPY7:%[0-9]+]]:_(s64) = COPY $x7302  ; CHECK-NEXT:   [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.7303  ; CHECK-NEXT:   [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[FRAME_INDEX]](p0) :: (invariant load (s64) from %fixed-stack.7, align 16)304  ; CHECK-NEXT:   [[FRAME_INDEX1:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.6305  ; CHECK-NEXT:   [[LOAD1:%[0-9]+]]:_(s64) = G_LOAD [[FRAME_INDEX1]](p0) :: (invariant load (s64) from %fixed-stack.6)306  ; CHECK-NEXT:   [[FRAME_INDEX2:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.5307  ; CHECK-NEXT:   [[LOAD2:%[0-9]+]]:_(s64) = G_LOAD [[FRAME_INDEX2]](p0) :: (invariant load (s64) from %fixed-stack.5, align 16)308  ; CHECK-NEXT:   [[FRAME_INDEX3:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.4309  ; CHECK-NEXT:   [[LOAD3:%[0-9]+]]:_(s64) = G_LOAD [[FRAME_INDEX3]](p0) :: (invariant load (s64) from %fixed-stack.4)310  ; CHECK-NEXT:   [[FRAME_INDEX4:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.3311  ; CHECK-NEXT:   [[LOAD4:%[0-9]+]]:_(s64) = G_LOAD [[FRAME_INDEX4]](p0) :: (invariant load (s64) from %fixed-stack.3, align 16)312  ; CHECK-NEXT:   [[FRAME_INDEX5:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.2313  ; CHECK-NEXT:   [[LOAD5:%[0-9]+]]:_(s64) = G_LOAD [[FRAME_INDEX5]](p0) :: (invariant load (s64) from %fixed-stack.2)314  ; CHECK-NEXT:   [[FRAME_INDEX6:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.1315  ; CHECK-NEXT:   [[LOAD6:%[0-9]+]]:_(s64) = G_LOAD [[FRAME_INDEX6]](p0) :: (invariant load (s64) from %fixed-stack.1, align 16)316  ; CHECK-NEXT:   [[FRAME_INDEX7:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.0317  ; CHECK-NEXT:   [[LOAD7:%[0-9]+]]:_(s64) = G_LOAD [[FRAME_INDEX7]](p0) :: (invariant load (s64) from %fixed-stack.0)318  ; CHECK-NEXT:   [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY]](s64), [[COPY1]](s64)319  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(s100) = G_TRUNC [[MV]](s128)320  ; CHECK-NEXT:   [[MV1:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY2]](s64), [[COPY3]](s64)321  ; CHECK-NEXT:   [[TRUNC1:%[0-9]+]]:_(s100) = G_TRUNC [[MV1]](s128)322  ; CHECK-NEXT:   [[MV2:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY4]](s64), [[COPY5]](s64)323  ; CHECK-NEXT:   [[TRUNC2:%[0-9]+]]:_(s100) = G_TRUNC [[MV2]](s128)324  ; CHECK-NEXT:   [[MV3:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY6]](s64), [[COPY7]](s64)325  ; CHECK-NEXT:   [[TRUNC3:%[0-9]+]]:_(s100) = G_TRUNC [[MV3]](s128)326  ; CHECK-NEXT:   [[MV4:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[LOAD]](s64), [[LOAD1]](s64)327  ; CHECK-NEXT:   [[TRUNC4:%[0-9]+]]:_(s100) = G_TRUNC [[MV4]](s128)328  ; CHECK-NEXT:   [[MV5:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[LOAD2]](s64), [[LOAD3]](s64)329  ; CHECK-NEXT:   [[TRUNC5:%[0-9]+]]:_(s100) = G_TRUNC [[MV5]](s128)330  ; CHECK-NEXT:   [[MV6:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[LOAD4]](s64), [[LOAD5]](s64)331  ; CHECK-NEXT:   [[TRUNC6:%[0-9]+]]:_(s100) = G_TRUNC [[MV6]](s128)332  ; CHECK-NEXT:   [[MV7:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[LOAD6]](s64), [[LOAD7]](s64)333  ; CHECK-NEXT:   [[TRUNC7:%[0-9]+]]:_(s100) = G_TRUNC [[MV7]](s128)334  ; CHECK-NEXT:   [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s100>) = G_BUILD_VECTOR [[TRUNC]](s100), [[TRUNC1]](s100), [[TRUNC2]](s100), [[TRUNC3]](s100), [[TRUNC4]](s100), [[TRUNC5]](s100), [[TRUNC6]](s100), [[TRUNC7]](s100)335  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1336  ; CHECK-NEXT:   [[EVEC:%[0-9]+]]:_(s100) = G_EXTRACT_VECTOR_ELT [[BUILD_VECTOR]](<8 x s100>), [[C]](s64)337  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s128) = G_ANYEXT [[EVEC]](s100)338  ; CHECK-NEXT:   [[UV:%[0-9]+]]:_(s64), [[UV1:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[ANYEXT]](s128)339  ; CHECK-NEXT:   $x0 = COPY [[UV]](s64)340  ; CHECK-NEXT:   $x1 = COPY [[UV1]](s64)341  ; CHECK-NEXT:   RET_ReallyLR implicit $x0, implicit $x1342  %r = extractelement <8 x i100> %v, i32 1343  ret i100 %r344}345