diff --git a/lang/builtin/builtin.go b/lang/builtin/builtin.go
index 3b7b0fa..98f34da 100644
--- a/lang/builtin/builtin.go
+++ b/lang/builtin/builtin.go
@@ -344,7 +344,7 @@
 
 	// ---- pixel_format
 
-	"pixel_format.bits_per_pixel() u32",
+	"pixel_format.bits_per_pixel() u32[..= 256]",
 
 	// ---- pixel_swizzler
 
diff --git a/release/c/wuffs-unsupported-snapshot.c b/release/c/wuffs-unsupported-snapshot.c
index b71a7b6..86495e7 100644
--- a/release/c/wuffs-unsupported-snapshot.c
+++ b/release/c/wuffs-unsupported-snapshot.c
@@ -8283,7 +8283,7 @@
   v_dst_pixfmt = wuffs_base__pixel_buffer__pixel_format(a_dst);
   v_dst_bits_per_pixel =
       wuffs_base__pixel_format__bits_per_pixel(&v_dst_pixfmt);
-  if ((v_dst_bits_per_pixel > 512) || ((v_dst_bits_per_pixel & 7) != 0)) {
+  if ((v_dst_bits_per_pixel & 7) != 0) {
     return wuffs_base__make_status(wuffs_base__error__unsupported_option);
   }
   v_dst_bytes_per_pixel = ((uint64_t)((v_dst_bits_per_pixel / 8)));
@@ -16774,7 +16774,7 @@
 
   v_pixfmt = wuffs_base__pixel_buffer__pixel_format(a_pb);
   v_bits_per_pixel = wuffs_base__pixel_format__bits_per_pixel(&v_pixfmt);
-  if ((v_bits_per_pixel > 512) || ((v_bits_per_pixel & 7) != 0)) {
+  if ((v_bits_per_pixel & 7) != 0) {
     return wuffs_base__make_status(wuffs_base__error__unsupported_option);
   }
   v_bytes_per_pixel = (v_bits_per_pixel >> 3);
diff --git a/std/bmp/decode_bmp.wuffs b/std/bmp/decode_bmp.wuffs
index 49b9c40..96f0ad5 100644
--- a/std/bmp/decode_bmp.wuffs
+++ b/std/bmp/decode_bmp.wuffs
@@ -252,8 +252,8 @@
 
 pri func decoder.swizzle!(dst: ptr base.pixel_buffer, src: slice base.u8) base.status {
 	var dst_pixfmt          : base.pixel_format
-	var dst_bits_per_pixel  : base.u32
-	var dst_bytes_per_pixel : base.u64[..= 64]
+	var dst_bits_per_pixel  : base.u32[..= 256]
+	var dst_bytes_per_pixel : base.u64[..= 32]
 	var dst_bytes_per_row   : base.u64
 	var src_bytes_per_pixel : base.u8[..= 4]
 	var tab                 : table base.u8
@@ -265,7 +265,7 @@
 	// to chain the two calls: "args.dst.pixel_format().bits_per_pixel()".
 	dst_pixfmt = args.dst.pixel_format()
 	dst_bits_per_pixel = dst_pixfmt.bits_per_pixel()
-	if (dst_bits_per_pixel > 512) or ((dst_bits_per_pixel & 7) <> 0) {
+	if (dst_bits_per_pixel & 7) <> 0 {
 		return base."#unsupported option"
 	}
 	dst_bytes_per_pixel = (dst_bits_per_pixel / 8) as base.u64
diff --git a/std/gif/decode_gif.wuffs b/std/gif/decode_gif.wuffs
index 75e50d9..69fba95 100644
--- a/std/gif/decode_gif.wuffs
+++ b/std/gif/decode_gif.wuffs
@@ -1013,8 +1013,8 @@
 	var n               : base.u64
 	var src_ri          : base.u64
 	var pixfmt          : base.pixel_format
-	var bytes_per_pixel : base.u32[..= 64]
-	var bits_per_pixel  : base.u32
+	var bytes_per_pixel : base.u32[..= 32]
+	var bits_per_pixel  : base.u32[..= 256]
 	var tab             : table base.u8
 	var i               : base.u64
 	var j               : base.u64
@@ -1027,7 +1027,7 @@
 	// chain the two calls: "args.pb.pixel_format().bits_per_pixel()".
 	pixfmt = args.pb.pixel_format()
 	bits_per_pixel = pixfmt.bits_per_pixel()
-	if (bits_per_pixel > 512) or ((bits_per_pixel & 7) <> 0) {
+	if (bits_per_pixel & 7) <> 0 {
 		return base."#unsupported option"
 	}
 	bytes_per_pixel = bits_per_pixel >> 3
