Query on i128 type tests written for memset


I was going through tests written for memset. I need help in figuring out the types in the tests.
Found test “test/Transforms/MemCpyOpt/memset-memcpy-redundant-memset.ll>” which uses i128 type for destination size.

I am curious when we can get i128 type dest_size calls for memset?

define void @test_different_types_i128_i32(i8* %dst, i8* %src, i128 %dst_size, i32 %src_size, i8 %c) {

call void @llvm.memset.p0i8.i128(i8* %dst, i8 %c, i128 %dst_size, i32 1, i1 false)

call void @llvm.memcpy.p0i8.p0i8.i32(i8* %dst, i8* %src, i32 %src_size, i32 1, i1 false)

ret void




As far as I know, clang will never generate a memset like that, and LLVM optimizations won’t either. But there isn’t any rule against it, so other frontends could generate one, at least in theory. -Eli