diff --git a/test/core/gc/array_fill.wast b/test/core/gc/array_fill.wast
index 0379ad53..73122178 100644
--- a/test/core/gc/array_fill.wast
+++ b/test/core/gc/array_fill.wast
@@ -79,3 +79,22 @@
 (assert_return (invoke "array_get_nth" (i32.const 2)) (i32.const 11))
 (assert_return (invoke "array_get_nth" (i32.const 3)) (i32.const 11))
 (assert_return (invoke "array_get_nth" (i32.const 4)) (i32.const 0))
+
+;; fill the whole array
+(assert_return (invoke "array_fill" (i32.const 0) (i32.const 42) (i32.const 12)))
+(assert_return (invoke "array_get_nth" (i32.const 0)) (i32.const 42))
+(assert_return (invoke "array_get_nth" (i32.const 2)) (i32.const 42))
+(assert_return (invoke "array_get_nth" (i32.const 5)) (i32.const 42))
+(assert_return (invoke "array_get_nth" (i32.const 11)) (i32.const 42))
+
+;; fill the first element
+(assert_return (invoke "array_fill" (i32.const 0) (i32.const 7) (i32.const 1)))
+(assert_return (invoke "array_get_nth" (i32.const 0)) (i32.const 7))
+(assert_return (invoke "array_get_nth" (i32.const 1)) (i32.const 42))
+(assert_return (invoke "array_get_nth" (i32.const 11)) (i32.const 42))
+
+;; fill the last 2 elements
+(assert_return (invoke "array_fill" (i32.const 10) (i32.const 9) (i32.const 2)))
+(assert_return (invoke "array_get_nth" (i32.const 9)) (i32.const 42))
+(assert_return (invoke "array_get_nth" (i32.const 10)) (i32.const 9))
+(assert_return (invoke "array_get_nth" (i32.const 11)) (i32.const 9))
