Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(556)

Unified Diff: test/NaCl/Bitcode/pnacl-bcdis/select.ll

Issue 939073008: Rebased PNaCl localmods in LLVM to 223109 (Closed)
Patch Set: undo localmod Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « test/NaCl/Bitcode/pnacl-bcdis/ret.ll ('k') | test/NaCl/Bitcode/pnacl-bcdis/store.ll » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/NaCl/Bitcode/pnacl-bcdis/select.ll
diff --git a/test/NaCl/Bitcode/pnacl-bcdis/select.ll b/test/NaCl/Bitcode/pnacl-bcdis/select.ll
new file mode 100644
index 0000000000000000000000000000000000000000..8c77d3ba3098256bb25827050fb18bb8b9e09bdf
--- /dev/null
+++ b/test/NaCl/Bitcode/pnacl-bcdis/select.ll
@@ -0,0 +1,118 @@
+; Test the select instruction.
+
+; RUN: llvm-as < %s | pnacl-freeze | pnacl-bccompress --remove-abbreviations \
+; RUN: | pnacl-bcdis | FileCheck %s
+
+; Test selecting integer types.
+define void @TestIntTypes() {
+
+; CHECK: | | %b0:
+
+ %v0 = select i1 0, i1 0, i1 0
+ %v1 = select i1 %v0, i8 1, i8 1
+ %v2 = select i1 %v0, i16 2, i16 2
+ %v3 = select i1 %v0, i32 3, i32 3
+ %v4 = select i1 %v0, i64 4, i64 4
+
+; CHECK-NEXT: {{.*}}| 3: <29, 5, 5, 5> | %v0 = select i1 %c0, i1 %c0,
+; CHECK-NEXT: | | i1 %c0;
+; CHECK-NEXT: {{.*}}| 3: <29, 4, 4, 1> | %v1 = select i1 %v0, i8 %c2,
+; CHECK-NEXT: | | i8 %c2;
+; CHECK-NEXT: {{.*}}| 3: <29, 4, 4, 2> | %v2 = select i1 %v0, i16 %c3,
+; CHECK-NEXT: | | i16 %c3;
+; CHECK-NEXT: {{.*}}| 3: <29, 7, 7, 3> | %v3 = select i1 %v0, i32 %c1,
+; CHECK-NEXT: | | i32 %c1;
+; CHECK-NEXT: {{.*}}| 3: <29, 5, 5, 4> | %v4 = select i1 %v0, i64 %c4,
+; CHECK-NEXT: | | i64 %c4;
+
+ ; Verify computed results of right size.
+ %v5 = and i1 %v0, %v0
+ %v6 = add i8 %v1, %v1
+ %v7 = add i16 %v2, %v2
+ %v8 = add i32 %v3, %v3
+ %v9 = add i64 %v4, %v4
+ ret void
+
+; CHECK-NEXT: {{.*}}| 3: <2, 5, 5, 10> | %v5 = and i1 %v0, %v0;
+; CHECK-NEXT: {{.*}}| 3: <2, 5, 5, 0> | %v6 = add i8 %v1, %v1;
+; CHECK-NEXT: {{.*}}| 3: <2, 5, 5, 0> | %v7 = add i16 %v2, %v2;
+; CHECK-NEXT: {{.*}}| 3: <2, 5, 5, 0> | %v8 = add i32 %v3, %v3;
+; CHECK-NEXT: {{.*}}| 3: <2, 5, 5, 0> | %v9 = add i64 %v4, %v4;
+; CHECK-NEXT: {{.*}}| 3: <10> | ret void;
+
+}
+
+; Test selecting floating types.
+define void @TestFloatTypes(float %p0, double %p1) {
+
+; CHECK: | | %b0:
+
+ %v0 = select i1 0, float %p0, float %p0
+ %v1 = select i1 0, double %p1, double %p1
+
+; CHECK-NEXT: {{.*}}| 3: <29, 3, 3, 1> | %v0 = select i1 %c0, float %p0,
+; CHECK-NEXT: | | float %p0;
+; CHECK-NEXT: {{.*}}| 3: <29, 3, 3, 2> | %v1 = select i1 %c0, double %p1,
+; CHECK-NEXT: | | double %p1;
+
+ ; Verify computed results are of right size.
+ %v2 = fadd float %v0, %v0
+ %v3 = fadd double %v1, %v1
+ ret void
+
+; CHECK-NEXT: {{.*}}| 3: <2, 2, 2, 0> | %v2 = fadd float %v0, %v0;
+; CHECK-NEXT: {{.*}}| 3: <2, 2, 2, 0> | %v3 = fadd double %v1, %v1;
+; CHECK-NEXT: {{.*}}| 3: <10> | ret void;
+
+}
+
+; Test select on integer vectors
+define void @TestVecIntTypes(i32 %p0, <16 x i8> %p1, <8 x i16> %p2, <4 x i32> %p3) {
+
+ %v0 = trunc i32 %p0 to i1;
+ %v1 = select i1 %v0, <16 x i8> %p1, <16 x i8> %p1
+ %v2 = select i1 %v0, <8 x i16> %p2, <8 x i16> %p2
+ %v3 = select i1 %v0, <4 x i32> %p3, <4 x i32> %p3
+
+; CHECK: {{.*}}| {{.*}} | {{.*}} trunc
+
+; CHECK-NEXT: {{.*}}| 3: <29, 4, 4, 1> | %v1 = select i1 %v0, <16 x i8> %p1,
+; CHECK-NEXT: | | <16 x i8> %p1;
+; CHECK-NEXT: {{.*}}| 3: <29, 4, 4, 2> | %v2 = select i1 %v0, <8 x i16> %p2,
+; CHECK-NEXT: | | <8 x i16> %p2;
+; CHECK-NEXT: {{.*}}| 3: <29, 4, 4, 3> | %v3 = select i1 %v0, <4 x i32> %p3,
+; CHECK-NEXT: | | <4 x i32> %p3;
+
+ ; Verify computed results are of right type.
+ %v4 = and <16 x i8> %v1, %v1
+ %v5 = add <8 x i16> %v2, %v2
+ %v6 = add <4 x i32> %v3, %v3
+ ret void
+
+; CHECK-NEXT: {{.*}}| 3: <2, 3, 3, 10> | %v4 = and <16 x i8> %v1, %v1;
+; CHECK-NEXT: {{.*}}| 3: <2, 3, 3, 0> | %v5 = add <8 x i16> %v2, %v2;
+; CHECK-NEXT: {{.*}}| 3: <2, 3, 3, 0> | %v6 = add <4 x i32> %v3, %v3;
+; CHECK-NEXT: {{.*}}| 3: <10> | ret void;
+
+}
+
+
+; Test select on floating vectors
+define void @TestVecFloatTypes(i32 %p0, <4 x float> %p1) {
+
+ %v0 = trunc i32 %p0 to i1;
+ %v1 = select i1 %v0, <4 x float> %p1, <4 x float> %p1
+
+; CHECK: {{.*}}| {{.*}} | {{.*}} trunc
+; CHECK-NEXT: {{.*}}| 3: <29, 2, 2, 1> | %v1 = select i1 %v0,
+; CHECK-NEXT: | | <4 x float> %p1,
+; CHECK-NEXT: | | <4 x float> %p1;
+
+ ; Verify computed results are of right type.
+ %v2 = fadd <4 x float> %v1, %v1
+ ret void
+
+; CHECK-NEXT: {{.*}}| 3: <2, 1, 1, 0> | %v2 = fadd <4 x float> %v1, %v1;
+; CHECK-NEXT: {{.*}}| 3: <10> | ret void;
+
+}
« no previous file with comments | « test/NaCl/Bitcode/pnacl-bcdis/ret.ll ('k') | test/NaCl/Bitcode/pnacl-bcdis/store.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698