OLD | NEW |
---|---|
1 define i32 @_Z4castIxbET0_T_(i64 %a) { | 1 define i32 @_Z4castIxbET0_T_(i64 %a) { |
2 entry: | 2 entry: |
3 ; %tobool = icmp ne i64 %a, 0 | 3 ; %tobool = icmp ne i64 %a, 0 |
4 %tobool = trunc i64 %a to i1 | 4 %tobool = trunc i64 %a to i1 |
5 %tobool.ret_ext = zext i1 %tobool to i32 | 5 %tobool.ret_ext = zext i1 %tobool to i32 |
6 ret i32 %tobool.ret_ext | 6 ret i32 %tobool.ret_ext |
7 } | 7 } |
8 | 8 |
9 define i32 @_Z4castIybET0_T_(i64 %a) { | 9 define i32 @_Z4castIybET0_T_(i64 %a) { |
10 entry: | 10 entry: |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
69 define i32 @_Z4castIbbET0_T_(i32 %a) { | 69 define i32 @_Z4castIbbET0_T_(i32 %a) { |
70 entry: | 70 entry: |
71 %a.arg_trunc = trunc i32 %a to i1 | 71 %a.arg_trunc = trunc i32 %a to i1 |
72 %a.arg_trunc.ret_ext = zext i1 %a.arg_trunc to i32 | 72 %a.arg_trunc.ret_ext = zext i1 %a.arg_trunc to i32 |
73 ret i32 %a.arg_trunc.ret_ext | 73 ret i32 %a.arg_trunc.ret_ext |
74 } | 74 } |
75 | 75 |
76 define i32 @_Z4castIdbET0_T_(double %a) { | 76 define i32 @_Z4castIdbET0_T_(double %a) { |
77 entry: | 77 entry: |
78 ; %tobool = fcmp une double %a, 0.000000e+00 | 78 ; %tobool = fcmp une double %a, 0.000000e+00 |
79 %tobool = fptoui double %a to i1 | 79 %tobool = fptoui double %a to i32 |
80 %tobool.ret_ext = zext i1 %tobool to i32 | 80 %tobool.i1 = trunc i32 %tobool to i1 |
Jim Stichnoth
2016/02/10 06:35:59
I'd like to understand more about this change.
I
John
2016/02/10 15:41:13
the nonsfi test_cast_main.cpp is ocmpiled with -O2
| |
81 %tobool.ret_ext = zext i1 %tobool.i1 to i32 | |
81 ret i32 %tobool.ret_ext | 82 ret i32 %tobool.ret_ext |
82 } | 83 } |
83 | 84 |
84 define i32 @_Z4castIfbET0_T_(float %a) { | 85 define i32 @_Z4castIfbET0_T_(float %a) { |
85 entry: | 86 entry: |
86 ; %tobool = fcmp une float %a, 0.000000e+00 | 87 ; %tobool = fcmp une float %a, 0.000000e+00 |
87 %tobool = fptoui float %a to i1 | 88 %tobool = fptoui float %a to i32 |
88 %tobool.ret_ext = zext i1 %tobool to i32 | 89 %tobool.i1 = trunc i32 %tobool to i1 |
90 %tobool.ret_ext = zext i1 %tobool.i1 to i32 | |
89 ret i32 %tobool.ret_ext | 91 ret i32 %tobool.ret_ext |
90 } | 92 } |
OLD | NEW |