; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6 ; RUN: opt -S -passes=memcpyopt < %s | FileCheck %s ; RUN: opt -S -passes=memcpyopt -use-constant-int-for-fixed-length-splat < %s | FileCheck %s define void @store_to_memst_vec_constant_int(ptr %p) { ; CHECK-LABEL: define void @store_to_memst_vec_constant_int( ; CHECK-SAME: ptr [[P:%.*]]) { ; CHECK-NEXT: [[P1:%.*]] = getelementptr i8, ptr [[P]], i64 16 ; CHECK-NEXT: call void @llvm.memset.p0.i64(ptr align 16 [[P]], i8 1, i64 32, i1 false) ; CHECK-NEXT: ret void ; store <16 x i8> splat (i8 1), ptr %p, align 16 %p1 = getelementptr i8, ptr %p, i64 16 store <16 x i8> splat (i8 1), ptr %p1, align 16 ret void } define void @store_to_memst_vec_constant_fp(ptr %p) { ; CHECK-LABEL: define void @store_to_memst_vec_constant_fp( ; CHECK-SAME: ptr [[P:%.*]]) { ; CHECK-NEXT: [[P1:%.*]] = getelementptr i8, ptr [[P]], i64 16 ; CHECK-NEXT: call void @llvm.memset.p0.i64(ptr align 16 [[P]], i8 1, i64 32, i1 false) ; CHECK-NEXT: ret void ; store <4 x float> splat (float 2.3694278276172396e-38), ptr %p, align 16 %p1 = getelementptr i8, ptr %p, i64 16 store <4 x float> splat (float 2.3694278276172396e-38), ptr %p1, align 16 ret void }