brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.4 KiB · 0c58705 Raw
70 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 22; RUN: opt < %s -O3 -S -mtriple=x86_64-- -mcpu=x86-64    | FileCheck %s3; RUN: opt < %s -O3 -S -mtriple=x86_64-- -mcpu=x86-64-v2 | FileCheck %s4; RUN: opt < %s -O3 -S -mtriple=x86_64-- -mcpu=x86-64-v3 | FileCheck %s5; RUN: opt < %s -O3 -S -mtriple=x86_64-- -mcpu=x86-64-v4 | FileCheck %s6 7define <2 x i64> @PR61061(<2 x i64> noundef %vect) {8; CHECK-LABEL: define <2 x i64> @PR610619; CHECK-SAME: (<2 x i64> noundef [[VECT:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {10; CHECK-NEXT:    [[BC0:%.*]] = bitcast <2 x i64> [[VECT]] to <16 x i8>11; CHECK-NEXT:    [[PTR_SROA_0_15_VEC_INSERT:%.*]] = shufflevector <16 x i8> [[BC0]], <16 x i8> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 0, i32 1, i32 2, i32 3>12; CHECK-NEXT:    [[TMP1:%.*]] = bitcast <16 x i8> [[PTR_SROA_0_15_VEC_INSERT]] to <2 x i64>13; CHECK-NEXT:    ret <2 x i64> [[TMP1]]14;15  %ptr = alloca <2 x i64>, align 1616  call void @llvm.lifetime.start.p0(ptr nonnull %ptr)17  %bc0 = bitcast <2 x i64> %vect to <16 x i8>18  %bc1 = bitcast <2 x i64> %vect to <16 x i8>19  %bc2 = bitcast <2 x i64> %vect to <16 x i8>20  %bc3 = bitcast <2 x i64> %vect to <16 x i8>21  %bc4 = bitcast <2 x i64> %vect to <16 x i8>22  %bc5 = bitcast <2 x i64> %vect to <16 x i8>23  %bc6 = bitcast <2 x i64> %vect to <16 x i8>24  %bc7 = bitcast <2 x i64> %vect to <16 x i8>25  %elt0 = extractelement <16 x i8> %bc0, i64 026  %elt1 = extractelement <16 x i8> %bc1, i64 127  %elt2 = extractelement <16 x i8> %bc2, i64 228  %elt3 = extractelement <16 x i8> %bc3, i64 329  %elt4 = extractelement <16 x i8> %bc4, i64 430  %elt5 = extractelement <16 x i8> %bc5, i64 531  %elt6 = extractelement <16 x i8> %bc6, i64 632  %elt7 = extractelement <16 x i8> %bc7, i64 733  %ptr1 = getelementptr inbounds i8, ptr %ptr, i64 134  %ptr2 = getelementptr inbounds i8, ptr %ptr, i64 235  %ptr3 = getelementptr inbounds i8, ptr %ptr, i64 336  %ptr4 = getelementptr inbounds i8, ptr %ptr, i64 437  %ptr5 = getelementptr inbounds i8, ptr %ptr, i64 538  %ptr6 = getelementptr inbounds i8, ptr %ptr, i64 639  %ptr7 = getelementptr inbounds i8, ptr %ptr, i64 740  %ptr8 = getelementptr inbounds i8, ptr %ptr, i64 841  %ptr9 = getelementptr inbounds i8, ptr %ptr, i64 942  %ptr10 = getelementptr inbounds i8, ptr %ptr, i64 1043  %ptr11 = getelementptr inbounds i8, ptr %ptr, i64 1144  %ptr12 = getelementptr inbounds i8, ptr %ptr, i64 1245  %ptr13 = getelementptr inbounds i8, ptr %ptr, i64 1346  %ptr14 = getelementptr inbounds i8, ptr %ptr, i64 1447  %ptr15 = getelementptr inbounds i8, ptr %ptr, i64 1548  store i8 %elt0, ptr %ptr, align 1649  store i8 %elt1, ptr %ptr1, align 150  store i8 %elt2, ptr %ptr2, align 251  store i8 %elt3, ptr %ptr3, align 152  store i8 %elt0, ptr %ptr4, align 453  store i8 %elt1, ptr %ptr5, align 154  store i8 %elt2, ptr %ptr6, align 255  store i8 %elt3, ptr %ptr7, align 156  store i8 %elt4, ptr %ptr8, align 857  store i8 %elt5, ptr %ptr9, align 158  store i8 %elt6, ptr %ptr10, align 259  store i8 %elt7, ptr %ptr11, align 160  store i8 %elt0, ptr %ptr12, align 461  store i8 %elt1, ptr %ptr13, align 162  store i8 %elt2, ptr %ptr14, align 263  store i8 %elt3, ptr %ptr15, align 164  %base = load <2 x i64>, ptr %ptr, align 1665  call void @llvm.lifetime.end.p0(ptr nonnull %ptr)66  ret <2 x i64> %base67}68declare void @llvm.lifetime.start.p0(ptr)69declare void @llvm.lifetime.end.p0(ptr)70