@@ -1054,6 +1054,59 @@ test "alignment of vectors" {
1054
1054
try expect (@alignOf (@Vector (2 , u1 )) == 2 );
1055
1055
try expect (@alignOf (@Vector (1 , u1 )) == 1 );
1056
1056
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
+ }
1057
1110
}
1058
1111
1059
1112
test "loading the second vector from a slice of vectors" {
0 commit comments