OLD | NEW |
1 ; RUIN: %llvm2ice --verbose none %s | FileCheck %s | 1 ; RUIN: %llvm2ice --verbose none %s | FileCheck %s |
2 ; RUIN: %llvm2ice --verbose none %s | FileCheck --check-prefix=ERRORS %s | 2 ; RUIN: %llvm2ice --verbose none %s | FileCheck --check-prefix=ERRORS %s |
3 ; RUN: %szdiff --llvm2ice=%llvm2ice %s | FileCheck --check-prefix=DUMP %s | 3 ; RUN: %llvm2iceinsts %s | %szdiff %s | FileCheck --check-prefix=DUMP %s |
| 4 ; RUN: %llvm2iceinsts --pnacl %s | %szdiff %s \ |
| 5 ; RUN: | FileCheck --check-prefix=DUMP %s |
4 | 6 |
5 @__init_array_start = internal constant [0 x i8] zeroinitializer, align 4 | 7 @__init_array_start = internal constant [0 x i8] zeroinitializer, align 4 |
6 @__fini_array_start = internal constant [0 x i8] zeroinitializer, align 4 | 8 @__fini_array_start = internal constant [0 x i8] zeroinitializer, align 4 |
7 @__tls_template_start = internal constant [0 x i8] zeroinitializer, align 8 | 9 @__tls_template_start = internal constant [0 x i8] zeroinitializer, align 8 |
8 @__tls_template_alignment = internal constant [4 x i8] c"\01\00\00\00", align 4 | 10 @__tls_template_alignment = internal constant [4 x i8] c"\01\00\00\00", align 4 |
9 | 11 |
10 define internal i32 @doubleArgs(double %a, i32 %b, double %c) { | 12 define internal i32 @doubleArgs(double %a, i32 %b, double %c) { |
11 entry: | 13 entry: |
12 ret i32 %b | 14 ret i32 %b |
13 } | 15 } |
(...skipping 996 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1010 entry: | 1012 entry: |
1011 %cmp = fcmp true double %a, %b | 1013 %cmp = fcmp true double %a, %b |
1012 %cmp.ret_ext = zext i1 %cmp to i32 | 1014 %cmp.ret_ext = zext i1 %cmp to i32 |
1013 ret i32 %cmp.ret_ext | 1015 ret i32 %cmp.ret_ext |
1014 } | 1016 } |
1015 ; CHECK: fcmpTrueDouble: | 1017 ; CHECK: fcmpTrueDouble: |
1016 ; CHECK: mov {{.*}}, 1 | 1018 ; CHECK: mov {{.*}}, 1 |
1017 | 1019 |
1018 define internal float @loadFloat(i32 %a) { | 1020 define internal float @loadFloat(i32 %a) { |
1019 entry: | 1021 entry: |
1020 %a.asptr = inttoptr i32 %a to float* | 1022 %__1 = inttoptr i32 %a to float* |
1021 %v0 = load float* %a.asptr, align 4 | 1023 %v0 = load float* %__1, align 4 |
1022 ret float %v0 | 1024 ret float %v0 |
1023 } | 1025 } |
1024 ; CHECK: loadFloat: | 1026 ; CHECK: loadFloat: |
1025 ; CHECK: movss | 1027 ; CHECK: movss |
1026 ; CHECK: fld | 1028 ; CHECK: fld |
1027 | 1029 |
1028 define internal double @loadDouble(i32 %a) { | 1030 define internal double @loadDouble(i32 %a) { |
1029 entry: | 1031 entry: |
1030 %a.asptr = inttoptr i32 %a to double* | 1032 %__1 = inttoptr i32 %a to double* |
1031 %v0 = load double* %a.asptr, align 8 | 1033 %v0 = load double* %__1, align 8 |
1032 ret double %v0 | 1034 ret double %v0 |
1033 } | 1035 } |
1034 ; CHECK: loadDouble: | 1036 ; CHECK: loadDouble: |
1035 ; CHECK: movsd | 1037 ; CHECK: movsd |
1036 ; CHECK: fld | 1038 ; CHECK: fld |
1037 | 1039 |
1038 define internal void @storeFloat(i32 %a, float %value) { | 1040 define internal void @storeFloat(i32 %a, float %value) { |
1039 entry: | 1041 entry: |
1040 %a.asptr = inttoptr i32 %a to float* | 1042 %__2 = inttoptr i32 %a to float* |
1041 store float %value, float* %a.asptr, align 4 | 1043 store float %value, float* %__2, align 4 |
1042 ret void | 1044 ret void |
1043 } | 1045 } |
1044 ; CHECK: storeFloat: | 1046 ; CHECK: storeFloat: |
1045 ; CHECK: movss | 1047 ; CHECK: movss |
1046 | 1048 |
1047 define internal void @storeDouble(i32 %a, double %value) { | 1049 define internal void @storeDouble(i32 %a, double %value) { |
1048 entry: | 1050 entry: |
1049 %a.asptr = inttoptr i32 %a to double* | 1051 %__2 = inttoptr i32 %a to double* |
1050 store double %value, double* %a.asptr, align 8 | 1052 store double %value, double* %__2, align 8 |
1051 ret void | 1053 ret void |
1052 } | 1054 } |
1053 ; CHECK: storeDouble: | 1055 ; CHECK: storeDouble: |
1054 ; CHECK: movsd | 1056 ; CHECK: movsd |
1055 | 1057 |
1056 define internal void @storeFloatConst(i32 %a) { | 1058 define internal void @storeFloatConst(i32 %a) { |
1057 entry: | 1059 entry: |
1058 %a.asptr = inttoptr i32 %a to float* | 1060 %a.asptr = inttoptr i32 %a to float* |
1059 store float 0x3FF3AE1480000000, float* %a.asptr, align 4 | 1061 store float 0x3FF3AE1480000000, float* %a.asptr, align 4 |
1060 ret void | 1062 ret void |
(...skipping 29 matching lines...) Expand all Loading... |
1090 %cond = select i1 %cmp, double %a, double %b | 1092 %cond = select i1 %cmp, double %a, double %b |
1091 ret double %cond | 1093 ret double %cond |
1092 } | 1094 } |
1093 ; CHECK: selectDoubleVarVar: | 1095 ; CHECK: selectDoubleVarVar: |
1094 ; CHECK: ucomisd | 1096 ; CHECK: ucomisd |
1095 ; CHECK: ja . | 1097 ; CHECK: ja . |
1096 ; CHECK: fld | 1098 ; CHECK: fld |
1097 | 1099 |
1098 ; ERRORS-NOT: ICE translation error | 1100 ; ERRORS-NOT: ICE translation error |
1099 ; DUMP-NOT: SZ | 1101 ; DUMP-NOT: SZ |
OLD | NEW |