| Index: test/NaCl/PNaClABI/types.ll
|
| diff --git a/test/NaCl/PNaClABI/types.ll b/test/NaCl/PNaClABI/types.ll
|
| index 855ca027a05c1aafc98ba45f6f0c31e6f1a45adc..b9606e7428455d28fd6128dc05f6f80a526e6ad7 100644
|
| --- a/test/NaCl/PNaClABI/types.ll
|
| +++ b/test/NaCl/PNaClABI/types.ll
|
| @@ -27,6 +27,7 @@ block:
|
|
|
| ; Allowed types
|
|
|
| + ; Scalars.
|
| phi i1 [ undef, %entry ]
|
| phi i8 [ undef, %entry ]
|
| phi i16 [ undef, %entry ]
|
| @@ -34,6 +35,14 @@ block:
|
| phi i64 [ undef, %entry ]
|
| phi float [ undef, %entry ]
|
| phi double [ undef, %entry ]
|
| + ; Vectors.
|
| + phi <4 x i1> [ undef, %entry ]
|
| + phi <8 x i1> [ undef, %entry ]
|
| + phi <16 x i1> [ undef, %entry ]
|
| + phi <16 x i8> [ undef, %entry ]
|
| + phi <8 x i16> [ undef, %entry ]
|
| + phi <4 x i32> [ undef, %entry ]
|
| + phi <4 x float> [ undef, %entry ]
|
| ; CHECK-NOT: disallowed
|
|
|
|
|
| @@ -84,9 +93,64 @@ block:
|
| phi <{ i8, i32 }> [ undef, %entry ]
|
| ; CHECK-NEXT: disallowed: bad operand: {{.*}} <{ i8, i32 }>
|
|
|
| - ; Vector types are disallowed
|
| + ; Vector types of weird bit width are disallowed
|
| + phi <1 x i1> [ undef, %entry ]
|
| + phi <3 x i1> [ undef, %entry ]
|
| + phi <17 x i1> [ undef, %entry ]
|
| + phi <1 x i32> [ undef, %entry ]
|
| phi <2 x i32> [ undef, %entry ]
|
| + phi <3 x i32> [ undef, %entry ]
|
| + phi <5 x i32> [ undef, %entry ]
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <1 x i1>
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <3 x i1>
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <17 x i1>
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <1 x i32>
|
| ; CHECK-NEXT: disallowed: bad operand: {{.*}} <2 x i32>
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <3 x i32>
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <5 x i32>
|
| +
|
| + ; i64 and double vectors are currently disallowed, and so are the
|
| + ; corresponding bool vectors.
|
| + phi <2 x i1> [ undef, %entry ]
|
| + phi <2 x i64> [ undef, %entry ]
|
| + phi <2 x double> [ undef, %entry ]
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <2 x i1>
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <2 x i64>
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <2 x double>
|
| +
|
| + ; 256-bit width vectors are currently disallowed, and so are the
|
| + ; corresponding bool vectors.
|
| + phi <32 x i1> [ undef, %entry ]
|
| + phi <32 x i8> [ undef, %entry ]
|
| + phi <16 x i16> [ undef, %entry ]
|
| + phi <8 x i32> [ undef, %entry ]
|
| + phi <4 x i64> [ undef, %entry ]
|
| + phi <8 x float> [ undef, %entry ]
|
| + phi <4 x double> [ undef, %entry ]
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <32 x i1>
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <32 x i8>
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <16 x i16>
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <8 x i32>
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <4 x i64>
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <8 x float>
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <4 x double>
|
| +
|
| + ; 512-bit width vectors are currently disallowed, and so are the
|
| + ; corresponding bool vectors.
|
| + phi <64 x i1> [ undef, %entry ]
|
| + phi <64 x i8> [ undef, %entry ]
|
| + phi <32 x i16> [ undef, %entry ]
|
| + phi <16 x i32> [ undef, %entry ]
|
| + phi <8 x i64> [ undef, %entry ]
|
| + phi <16 x float> [ undef, %entry ]
|
| + phi <8 x double> [ undef, %entry ]
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <64 x i1>
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <64 x i8>
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <32 x i16>
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <16 x i32>
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <8 x i64>
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <16 x float>
|
| +; CHECK-NEXT: disallowed: bad operand: {{.*}} <8 x double>
|
|
|
| ret void
|
| }
|
|
|