[InstSimplify] add tests for insert-of-extract; NFC
authorSanjay Patel <spatel@rotateright.com>
Fri, 24 May 2019 00:11:23 +0000 (00:11 +0000)
committerSanjay Patel <spatel@rotateright.com>
Fri, 24 May 2019 00:11:23 +0000 (00:11 +0000)
llvm-svn: 361575

llvm/test/Transforms/InstSimplify/insertelement.ll

index c7db869..6e78ea7 100644 (file)
@@ -49,3 +49,25 @@ define <4 x i32> @PR1286(<4 x i32> %A) {
   %B = insertelement <4 x i32> %A, i32 undef, i32 1
   ret <4 x i32> %B
 }
+
+define <8 x i8> @extract_insert_same_vec_and_index(<8 x i8> %in) {
+; CHECK-LABEL: @extract_insert_same_vec_and_index(
+; CHECK-NEXT:    [[VAL:%.*]] = extractelement <8 x i8> [[IN:%.*]], i32 5
+; CHECK-NEXT:    [[VEC:%.*]] = insertelement <8 x i8> [[IN]], i8 [[VAL]], i32 5
+; CHECK-NEXT:    ret <8 x i8> [[VEC]]
+;
+  %val = extractelement <8 x i8> %in, i32 5
+  %vec = insertelement <8 x i8> %in, i8 %val, i32 5
+  ret <8 x i8> %vec
+}
+
+define <8 x i8> @extract_insert_same_vec_and_index2(<8 x i8> %in, i32 %index) {
+; CHECK-LABEL: @extract_insert_same_vec_and_index2(
+; CHECK-NEXT:    [[VAL:%.*]] = extractelement <8 x i8> [[IN:%.*]], i32 [[INDEX:%.*]]
+; CHECK-NEXT:    [[VEC:%.*]] = insertelement <8 x i8> [[IN]], i8 [[VAL]], i32 [[INDEX]]
+; CHECK-NEXT:    ret <8 x i8> [[VEC]]
+;
+  %val = extractelement <8 x i8> %in, i32 %index
+  %vec = insertelement <8 x i8> %in, i8 %val, i32 %index
+  ret <8 x i8> %vec
+}