@@ -456,6 +456,26 @@ func destroyGenArray<T>(_ array: Builtin.RawPointer, count: Builtin.Word, _: T)
456456 Builtin . destroyArray ( T . self, array, count)
457457}
458458
459+ // CHECK-LABEL: define hidden {{.*}}void @"$s8builtins21destroyArraySinglePODyyBpF"(ptr %0)
460+ // CHECK-NOT: call void @swift_arrayDestroy
461+ func destroyArraySinglePOD( _ array: Builtin . RawPointer ) {
462+ Builtin . destroyArray ( Int . self, array, 1 . _builtinWordValue)
463+ }
464+
465+ // CHECK-LABEL: define hidden {{.*}}void @"$s8builtins24destroyArraySingleNonPODyyBpF"(ptr %0)
466+ // CHECK-NOT: call void @swift_arrayDestroy
467+ // CHECK: [[TO_DESTROY:%.*]] = load ptr, ptr {{%.*}}
468+ // CHECK: call void @swift_release(ptr [[TO_DESTROY]])
469+ func destroyArraySingleNonPOD( _ array: Builtin . RawPointer ) {
470+ Builtin . destroyArray ( C . self, array, 1 . _builtinWordValue)
471+ }
472+
473+ // CHECK-LABEL: define hidden {{.*}}void @"$s8builtins21destroyArraySingleGenyyBp_xmtlF"(ptr %0, ptr %1, ptr %T)
474+ // CHECK-NOT: call void @swift_arrayDestroy
475+ // CHECK: call void {{%.*}}(ptr {{.*}} {{%.*}}, ptr %T)
476+ func destroyArraySingleGen< T> ( _ array: Builtin . RawPointer , _: T . Type ) {
477+ Builtin . destroyArray ( T . self, array, 1 . _builtinWordValue)
478+ }
459479
460480// CHECK-LABEL: define hidden {{.*}}void @"$s8builtins12copyPODArray{{[_0-9a-zA-Z]*}}F"(ptr %0, ptr %1, i64 %2)
461481// check: mul nuw i64 4, %2
0 commit comments