OLD | NEW |
1 ; RUN: llc < %s -mtriple=powerpc64-unknown-linux-gnu -mcpu=a2 -disable-ppc-cmp-o
pt=0 | FileCheck %s | 1 ; RUN: llc < %s -mtriple=powerpc64-unknown-linux-gnu -mcpu=a2 -disable-ppc-cmp-o
pt=0 | FileCheck %s |
2 target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
2:32:32-f64:64:64-f128:128:128-v128:128:128-n32:64" | 2 target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
2:32:32-f64:64:64-f128:128:128-v128:128:128-n32:64" |
3 target triple = "powerpc64-unknown-linux-gnu" | 3 target triple = "powerpc64-unknown-linux-gnu" |
4 | 4 |
5 define signext i32 @foo(i32 signext %a, i32 signext %b, i32* nocapture %c) #0 { | 5 define signext i32 @foo(i32 signext %a, i32 signext %b, i32* nocapture %c) #0 { |
6 entry: | 6 entry: |
7 %sub = sub nsw i32 %a, %b | 7 %sub = sub nsw i32 %a, %b |
8 store i32 %sub, i32* %c, align 4, !tbaa !0 | 8 store i32 %sub, i32* %c, align 4, !tbaa !0 |
9 %cmp = icmp sgt i32 %a, %b | 9 %cmp = icmp sgt i32 %a, %b |
10 %cond = select i1 %cmp, i32 %a, i32 %b | 10 %cond = select i1 %cmp, i32 %a, i32 %b |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 | 111 |
112 define double @food(double %a, double %b, double* nocapture %c) #0 { | 112 define double @food(double %a, double %b, double* nocapture %c) #0 { |
113 entry: | 113 entry: |
114 %sub = fsub double %a, %b | 114 %sub = fsub double %a, %b |
115 store double %sub, double* %c, align 8, !tbaa !3 | 115 store double %sub, double* %c, align 8, !tbaa !3 |
116 %cmp = fcmp ogt double %a, %b | 116 %cmp = fcmp ogt double %a, %b |
117 %cond = select i1 %cmp, double %a, double %b | 117 %cond = select i1 %cmp, double %a, double %b |
118 ret double %cond | 118 ret double %cond |
119 | 119 |
120 ; CHECK: @food | 120 ; CHECK: @food |
121 ; CHECK-NOT: fsub. 0, 1, 2 | 121 ; CHECK: fsub. 0, 1, 2 |
122 ; CHECK: stfd 0, 0(5) | 122 ; CHECK: stfd 0, 0(5) |
123 } | 123 } |
124 | 124 |
125 define float @foof(float %a, float %b, float* nocapture %c) #0 { | 125 define float @foof(float %a, float %b, float* nocapture %c) #0 { |
126 entry: | 126 entry: |
127 %sub = fsub float %a, %b | 127 %sub = fsub float %a, %b |
128 store float %sub, float* %c, align 4, !tbaa !3 | 128 store float %sub, float* %c, align 4, !tbaa !3 |
129 %cmp = fcmp ogt float %a, %b | 129 %cmp = fcmp ogt float %a, %b |
130 %cond = select i1 %cmp, float %a, float %b | 130 %cond = select i1 %cmp, float %a, float %b |
131 ret float %cond | 131 ret float %cond |
132 | 132 |
133 ; CHECK: @foof | 133 ; CHECK: @foof |
134 ; CHECK-NOT: fsubs. 0, 1, 2 | 134 ; CHECK: fsubs. 0, 1, 2 |
135 ; CHECK: stfs 0, 0(5) | 135 ; CHECK: stfs 0, 0(5) |
136 } | 136 } |
137 | 137 |
138 !0 = metadata !{metadata !"int", metadata !1} | 138 !0 = metadata !{metadata !"int", metadata !1} |
139 !1 = metadata !{metadata !"omnipotent char", metadata !2} | 139 !1 = metadata !{metadata !"omnipotent char", metadata !2} |
140 !2 = metadata !{metadata !"Simple C/C++ TBAA"} | 140 !2 = metadata !{metadata !"Simple C/C++ TBAA"} |
141 !3 = metadata !{metadata !"long", metadata !1} | 141 !3 = metadata !{metadata !"long", metadata !1} |
142 !4 = metadata !{metadata !"any pointer", metadata !1} | 142 !4 = metadata !{metadata !"any pointer", metadata !1} |
143 | 143 |
OLD | NEW |