xref: /llvm-project/llvm/test/Transforms/InstSimplify/extract-vector.ll (revision a83aa33d1bf9e8fe4858391f95a27ffd022e465b)
12ed7db0dSJoe Ellis; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2b280ee1dSBjorn Pettersson; RUN: opt < %s -passes=instsimplify -S | FileCheck %s
32ed7db0dSJoe Ellis
42ed7db0dSJoe Ellisdefine <16 x i8> @redundant_insert_extract_chain(<16 x i8> %x) {
52ed7db0dSJoe Ellis; CHECK-LABEL: @redundant_insert_extract_chain(
62ed7db0dSJoe Ellis; CHECK-NEXT:    ret <16 x i8> [[X:%.*]]
72ed7db0dSJoe Ellis;
8*a83aa33dSBradley Smith  %inserted = call <vscale x 32 x i8> @llvm.vector.insert.nxv32i8.v16i8(<vscale x 32 x i8> undef, <16 x i8> %x, i64 0)
9*a83aa33dSBradley Smith  %extracted = call <16 x i8> @llvm.vector.extract.v16i8.nxv32i8(<vscale x 32 x i8> %inserted, i64 0)
102ed7db0dSJoe Ellis  ret <16 x i8> %extracted
112ed7db0dSJoe Ellis}
122ed7db0dSJoe Ellis
132ed7db0dSJoe Ellisdefine <8 x i8> @non_redundant_insert_extract_chain(<16 x i8> %x) {
142ed7db0dSJoe Ellis; CHECK-LABEL: @non_redundant_insert_extract_chain(
15*a83aa33dSBradley Smith; CHECK-NEXT:    [[INSERTED:%.*]] = call <vscale x 32 x i8> @llvm.vector.insert.nxv32i8.v16i8(<vscale x 32 x i8> undef, <16 x i8> [[X:%.*]], i64 0)
16*a83aa33dSBradley Smith; CHECK-NEXT:    [[EXTRACTED:%.*]] = call <8 x i8> @llvm.vector.extract.v8i8.nxv32i8(<vscale x 32 x i8> [[INSERTED]], i64 0)
172ed7db0dSJoe Ellis; CHECK-NEXT:    ret <8 x i8> [[EXTRACTED]]
182ed7db0dSJoe Ellis;
19*a83aa33dSBradley Smith  %inserted = call <vscale x 32 x i8> @llvm.vector.insert.nxv32i8.v16i8(<vscale x 32 x i8> undef, <16 x i8> %x, i64 0)
20*a83aa33dSBradley Smith  %extracted = call <8 x i8> @llvm.vector.extract.v8i8.nxv32i8(<vscale x 32 x i8> %inserted, i64 0)
212ed7db0dSJoe Ellis  ret <8 x i8> %extracted
222ed7db0dSJoe Ellis}
232ed7db0dSJoe Ellis
24*a83aa33dSBradley Smithdeclare <16 x i8> @llvm.vector.extract.v16i8.nxv32i8(<vscale x 32 x i8>, i64)
25*a83aa33dSBradley Smithdeclare <8 x i8> @llvm.vector.extract.v8i8.nxv32i8(<vscale x 32 x i8>, i64)
26*a83aa33dSBradley Smithdeclare <vscale x 32 x i8> @llvm.vector.insert.nxv32i8.v16i8(<vscale x 32 x i8>, <16 x i8>, i64)
27