Index: tests_lit/llvm2ice_tests/undef.ll |
diff --git a/tests_lit/llvm2ice_tests/undef.ll b/tests_lit/llvm2ice_tests/undef.ll |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2df08ea3aa123cd66c51cefbb51753b7d8e6f906 |
--- /dev/null |
+++ b/tests_lit/llvm2ice_tests/undef.ll |
@@ -0,0 +1,37 @@ |
+; This test checks that undef values are represented as zero. |
+ |
+; RUN: %llvm2ice --verbose none %s | FileCheck %s |
+; RUN: %llvm2ice -O2 --verbose none %s | FileCheck %s |
+; RUN: %llvm2ice --verbose none %s | FileCheck --check-prefix=ERRORS %s |
+; RUN: %llvm2iceinsts %s | %szdiff %s | FileCheck --check-prefix=DUMP %s |
+; RUN: %llvm2iceinsts --pnacl %s | %szdiff %s \ |
+; RUN: | FileCheck --check-prefix=DUMP %s |
+ |
+define i32 @undefi32() { |
+entry: |
+; CHECK-LABEL: undefi32: |
+ ret i32 undef |
+; CHECK: mov eax, 0 |
+; CHECK: ret |
+} |
+ |
+define i64 @undefi64() { |
+entry: |
+; CHECK-LABEL: undefi64: |
+ ret i64 undef |
+; CHECK-DAG: mov eax, 0 |
+; CHECK-DAG: mov edx, 0 |
+; CHECK: ret |
+} |
+ |
+define float @undeffloat() { |
+entry: |
+; CHECK-LABEL: undeffloat: |
+ ret float undef |
+; CHECK-NOT: sub esp |
+; CHECK: fld |
+; CHECK: ret |
+} |
+ |
+; ERRORS-NOT: ICE translation error |
+; DUMP-NOT: SZ |