Add some more base.x86_m128i methods
diff --git a/internal/cgen/builtin.go b/internal/cgen/builtin.go
index 6f21abd..61ebff4 100644
--- a/internal/cgen/builtin.go
+++ b/internal/cgen/builtin.go
@@ -530,8 +530,17 @@
 			}
 			after := ""
 			switch method {
-			case t.IDCreateMMSet1EPI8:
-				b.writes("(char)(")
+			case t.IDCreateMMSet1EPI8, t.IDCreateMMSetEPI8:
+				b.writes("(int8_t)(")
+				after = ")"
+			case t.IDCreateMMSet1EPI16, t.IDCreateMMSetEPI16:
+				b.writes("(int16_t)(")
+				after = ")"
+			case t.IDCreateMMSet1EPI32, t.IDCreateMMSetEPI32:
+				b.writes("(int32_t)(")
+				after = ")"
+			case t.IDCreateMMSet1EPI64X, t.IDCreateMMSetEPI64X:
+				b.writes("(int64_t)(")
 				after = ")"
 			}
 			if err := g.writeExpr(b, o.AsArg().Value(), false, depth); err != nil {
diff --git a/lang/builtin/builtin.go b/lang/builtin/builtin.go
index 0717000..7429f8a 100644
--- a/lang/builtin/builtin.go
+++ b/lang/builtin/builtin.go
@@ -539,22 +539,74 @@
 
 	// TODO: generate these methods automatically?
 
+	"x86_m128i.create_mm_set1_epi16(a: u16) x86_m128i",
+	"x86_m128i.create_mm_set1_epi32(a: u32) x86_m128i",
+	"x86_m128i.create_mm_set1_epi64x(a: u64) x86_m128i",
 	"x86_m128i.create_mm_set1_epi8(a: u8) x86_m128i",
+	"x86_m128i.create_mm_set_epi16(" +
+		"e7: u16, e6: u16, e5: u16, e4: u16," +
+		"e3: u16, e2: u16, e1: u16, e0: u16) x86_m128i",
+	"x86_m128i.create_mm_set_epi32(" +
+		"e3: u32, e2: u32, e1: u32, e0: u32) x86_m128i",
+	"x86_m128i.create_mm_set_epi64x(e1: u64, e0: u64) x86_m128i",
+	"x86_m128i.create_mm_set_epi8(" +
+		"e15: u8, e14: u8, e13: u8, e12: u8," +
+		"e11: u8, e10: u8, e9: u8, e8: u8," +
+		"e7: u8, e6: u8, e5: u8, e4: u8," +
+		"e3: u8, e2: u8, e1: u8, e0: u8) x86_m128i",
+	"x86_m128i.create_mm_setzero_si128() x86_m128i",
 
 	"x86_m128i._mm_abs_epi16() x86_m128i",
 	"x86_m128i._mm_add_epi16(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_add_epi32(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_add_epi64(b: x86_m128i) x86_m128i",
 	"x86_m128i._mm_add_epi8(b: x86_m128i) x86_m128i",
 	"x86_m128i._mm_and_si128(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_avg_epu16(b: x86_m128i) x86_m128i",
 	"x86_m128i._mm_avg_epu8(b: x86_m128i) x86_m128i",
 	"x86_m128i._mm_blend_epi16(b: x86_m128i, imm8: u32) x86_m128i",
 	"x86_m128i._mm_blendv_epi8(b: x86_m128i, mask: x86_m128i) x86_m128i",
 	"x86_m128i._mm_cmpeq_epi16(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_cmpeq_epi32(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_cmpeq_epi64(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_cmpeq_epi8(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_madd_epi16(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_maddubs_epi16(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_max_epi16(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_max_epi32(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_max_epi8(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_max_epu16(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_max_epu32(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_max_epu8(b: x86_m128i) x86_m128i",
 	"x86_m128i._mm_min_epi16(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_min_epi32(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_min_epi8(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_min_epu16(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_min_epu32(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_min_epu8(b: x86_m128i) x86_m128i",
 	"x86_m128i._mm_packus_epi16(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_sad_epu8(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_shuffle_epi32(imm8: u32) x86_m128i",
+	"x86_m128i._mm_shuffle_epi8(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_slli_epi16(imm8: u32) x86_m128i",
+	"x86_m128i._mm_slli_epi32(imm8: u32) x86_m128i",
+	"x86_m128i._mm_slli_epi64(imm8: u32) x86_m128i",
 	"x86_m128i._mm_slli_si128(imm8: u32) x86_m128i",
+	"x86_m128i._mm_srli_epi16(imm8: u32) x86_m128i",
+	"x86_m128i._mm_srli_epi32(imm8: u32) x86_m128i",
+	"x86_m128i._mm_srli_epi64(imm8: u32) x86_m128i",
 	"x86_m128i._mm_srli_si128(imm8: u32) x86_m128i",
 	"x86_m128i._mm_sub_epi16(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_sub_epi32(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_sub_epi64(b: x86_m128i) x86_m128i",
 	"x86_m128i._mm_sub_epi8(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_unpackhi_epi16(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_unpackhi_epi32(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_unpackhi_epi64(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_unpackhi_epi8(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_unpacklo_epi16(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_unpacklo_epi32(b: x86_m128i) x86_m128i",
+	"x86_m128i._mm_unpacklo_epi64(b: x86_m128i) x86_m128i",
 	"x86_m128i._mm_unpacklo_epi8(b: x86_m128i) x86_m128i",
 	"x86_m128i._mm_xor_si128(b: x86_m128i) x86_m128i",
 }
diff --git a/lang/token/list.go b/lang/token/list.go
index 87916d8..e7b7be5 100644
--- a/lang/token/list.go
+++ b/lang/token/list.go
@@ -687,7 +687,14 @@
 	IDStoreSlice256 = ID(0x38B)
 	IDStoreSlice512 = ID(0x38C)
 
-	IDCreateMMSet1EPI8 = ID(0x390)
+	IDCreateMMSet1EPI8   = ID(0x390)
+	IDCreateMMSet1EPI16  = ID(0x391)
+	IDCreateMMSet1EPI32  = ID(0x392)
+	IDCreateMMSet1EPI64X = ID(0x393)
+	IDCreateMMSetEPI8    = ID(0x394)
+	IDCreateMMSetEPI16   = ID(0x395)
+	IDCreateMMSetEPI32   = ID(0x396)
+	IDCreateMMSetEPI64X  = ID(0x397)
 )
 
 var builtInsByID = [nBuiltInIDs]string{
@@ -1089,7 +1096,14 @@
 	IDStoreSlice256: "store_slice256",
 	IDStoreSlice512: "store_slice512",
 
-	IDCreateMMSet1EPI8: "create_mm_set1_epi8",
+	IDCreateMMSet1EPI8:   "create_mm_set1_epi8",
+	IDCreateMMSet1EPI16:  "create_mm_set1_epi16",
+	IDCreateMMSet1EPI32:  "create_mm_set1_epi32",
+	IDCreateMMSet1EPI64X: "create_mm_set1_epi64x",
+	IDCreateMMSetEPI8:    "create_mm_set_epi8",
+	IDCreateMMSetEPI16:   "create_mm_set_epi16",
+	IDCreateMMSetEPI32:   "create_mm_set_epi32",
+	IDCreateMMSetEPI64X:  "create_mm_set_epi64x",
 }
 
 var builtInsByName = map[string]ID{}
diff --git a/release/c/wuffs-unsupported-snapshot.c b/release/c/wuffs-unsupported-snapshot.c
index 2c1125f..82638aa 100644
--- a/release/c/wuffs-unsupported-snapshot.c
+++ b/release/c/wuffs-unsupported-snapshot.c
@@ -31208,7 +31208,7 @@
   __m128i v_k128 = {0};
 
   if (((uint64_t)(a_prev.len)) == 0) {
-    v_k128 = _mm_set1_epi8((char)(254));
+    v_k128 = _mm_set1_epi8((int8_t)(254));
     {
       wuffs_base__slice_u8 i_slice_c = a_curr;
       v_c.ptr = i_slice_c.ptr;
@@ -31241,7 +31241,7 @@
       v_c.len = 0;
     }
   } else {
-    v_k128 = _mm_set1_epi8((char)(1));
+    v_k128 = _mm_set1_epi8((int8_t)(1));
     {
       wuffs_base__slice_u8 i_slice_c = a_curr;
       v_c.ptr = i_slice_c.ptr;