; RUN: llc -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %} ; A regression test that checks if memset with a size larger exceeding i8 range ; does not crash the backend. ; CHECK-DAG: %[[#INT8:]] = OpTypeInt 8 0 ; CHECK-DAG: %[[#INT32:]] = OpTypeInt 32 0 ; CHECK-DAG: %[[#INT64:]] = OpTypeInt 64 0 ; CHECK-DAG: %[[#SIZE:]] = OpConstant %[[#INT32]] 444 ; CHECK-DAG: %[[#ARRTY:]] = OpTypeArray %[[#INT8]] %[[#SIZE]] ; CHECK-DAG: %[[#ZERO:]] = OpConstantNull %[[#ARRTY]] ; CHECK-DAG: %[[#LEN:]] = OpConstant %[[#INT64]] 444 ; CHECK: OpCopyMemorySized %[[#]] %[[#]] %[[#LEN]] Aligned 1 define spir_func void @test_memset_large(ptr addrspace(4) %p) addrspace(4) { entry: call addrspace(4) void @llvm.memset.p4.i64(ptr addrspace(4) %p, i8 0, i64 444, i1 false) ret void } declare void @llvm.memset.p4.i64(ptr addrspace(4) writeonly captures(none), i8, i64, i1 immarg) addrspace(4)