@@ -1054,6 +1054,59 @@ test "alignment of vectors" {
10541054 try expect (@alignOf (@Vector (2 , u1 )) == 2 );
10551055 try expect (@alignOf (@Vector (1 , u1 )) == 1 );
10561056 try expect (@alignOf (@Vector (2 , u16 )) == 4 );
1057+
1058+ try expect (@alignOf (@Vector (7 , i8 )) == 8 );
1059+ try expect (@alignOf (@Vector (8 , i8 )) == 8 );
1060+ try expect (@alignOf (@Vector (9 , i8 )) == 16 );
1061+ try expect (@alignOf (@Vector (16 , i8 )) == 16 );
1062+ try expect (@alignOf (@Vector (31 , i8 )) == 32 );
1063+ try expect (@alignOf (@Vector (32 , i8 )) == 32 );
1064+ try expect (@alignOf (@Vector (33 , i8 )) == 64 );
1065+
1066+ try expect (@alignOf (@Vector (3 , u16 )) == 8 );
1067+ try expect (@alignOf (@Vector (3 , f32 )) == 16 );
1068+ try expect (@alignOf (@Vector (3 , u64 )) == 32 );
1069+ try expect (@alignOf (@Vector (1 , * u8 )) == @sizeOf (* u8 )* 1 );
1070+ try expect (@alignOf (@Vector (2 , * u8 )) == @sizeOf (* u8 )* 2 );
1071+ try expect (@alignOf (@Vector (3 , * u8 )) == @sizeOf (* u8 )* 4 );
1072+
1073+ if (builtin .zig_backend != .stage1 ) { // TODO: stage1 passes with llvm14 but not llvm13
1074+ try expect (@alignOf (@Vector (8 , bool )) == 1 );
1075+ try expect (@alignOf (@Vector (8 , u1 )) == 1 );
1076+ try expect (@alignOf (@Vector (9 , u1 )) == 2 );
1077+ try expect (@alignOf (@Vector (32 , u1 )) == 4 );
1078+ try expect (@alignOf (@Vector (33 , u1 )) == 8 );
1079+ }
1080+ }
1081+
1082+ test "size of vectors" {
1083+ try expect (@sizeOf (@Vector (2 , u8 )) == 2 );
1084+ try expect (@sizeOf (@Vector (2 , u16 )) == 4 );
1085+
1086+ try expect (@sizeOf (@Vector (7 , i8 )) == 8 );
1087+ try expect (@sizeOf (@Vector (8 , i8 )) == 8 );
1088+ try expect (@sizeOf (@Vector (9 , i8 )) == 16 );
1089+ try expect (@sizeOf (@Vector (16 , i8 )) == 16 );
1090+ try expect (@sizeOf (@Vector (31 , i8 )) == 32 );
1091+ try expect (@sizeOf (@Vector (32 , i8 )) == 32 );
1092+ try expect (@sizeOf (@Vector (33 , i8 )) == 64 );
1093+
1094+ try expect (@sizeOf (@Vector (3 , u16 )) == 8 );
1095+ try expect (@sizeOf (@Vector (3 , f32 )) == 16 );
1096+ try expect (@sizeOf (@Vector (3 , u64 )) == 32 );
1097+ try expect (@sizeOf (@Vector (1 , * u8 )) == @sizeOf (* u8 )* 1 );
1098+ try expect (@sizeOf (@Vector (2 , * u8 )) == @sizeOf (* u8 )* 2 );
1099+ try expect (@sizeOf (@Vector (3 , * u8 )) == @sizeOf (* u8 )* 4 );
1100+
1101+ if (builtin .zig_backend != .stage1 ) { // TODO: stage1 passes with llvm14 but not llvm13
1102+ try expect (@sizeOf (@Vector (8 , bool )) == 1 );
1103+ try expect (@sizeOf (@Vector (1 , u1 )) == 1 );
1104+ try expect (@sizeOf (@Vector (2 , u1 )) == 1 );
1105+ try expect (@sizeOf (@Vector (8 , u1 )) == 1 );
1106+ try expect (@sizeOf (@Vector (9 , u1 )) == 2 );
1107+ try expect (@sizeOf (@Vector (32 , u1 )) == 4 );
1108+ try expect (@sizeOf (@Vector (33 , u1 )) == 8 );
1109+ }
10571110}
10581111
10591112test "loading the second vector from a slice of vectors" {
0 commit comments