Lines Matching full:sub

12   %y = sub nuw i64 10, %x
22 %y = sub nsw i64 3, %x
32 %y = sub nuw nsw i64 10, %x
42 %y = sub nuw nsw i64 10, %x
52 %y = sub nuw i64 10, %x
63 %y = sub nsw i64 10, %x
72 %y = sub nuw i64 10, %x
81 %y = sub nsw i8 127, %x
91 %s = sub i8 0, %y
101 %s = sub i8 0, %y
111 %s = sub i8 4, %y
121 %s = sub i8 127, %y
131 %s = sub i8 255, %y
140 %s = sub <2 x i8> <i8 255, i8 255>, %y
150 %sub = sub <2 x i32> <i32 15, i32 undef>, %a
151 %cmp = icmp eq <2 x i32> %sub, <i32 10, i32 10>
160 %sub = sub <2 x i32> <i32 15, i32 16>, %a
161 %cmp = icmp eq <2 x i32> %sub, <i32 10, i32 10>
167 ; CHECK-NEXT: [[SUB:%.*]] = sub <2 x i32> splat (i32 15), [[A:%.*]]
168 ; CHECK-NEXT: [[CMP:%.*]] = icmp eq <2 x i32> [[SUB]], <i32 10, i32 undef>
171 %sub = sub <2 x i32> <i32 15, i32 15>, %a
172 %cmp = icmp eq <2 x i32> %sub, <i32 10, i32 undef>
178 ; CHECK-NEXT: [[SUB:%.*]] = sub <2 x i32> splat (i32 15), [[A:%.*]]
179 ; CHECK-NEXT: [[CMP:%.*]] = icmp eq <2 x i32> [[SUB]], <i32 10, i32 11>
182 %sub = sub <2 x i32> <i32 15, i32 15>, %a
183 %cmp = icmp eq <2 x i32> %sub, <i32 10, i32 11>
193 %negx = sub i32 0, %x
200 ; CHECK-NEXT: [[NEGX:%.*]] = sub i32 0, [[X:%.*]]
205 %negx = sub i32 0, %x
213 ; CHECK-NEXT: [[NEGX:%.*]] = sub i32 0, [[X:%.*]]
218 %negx = sub i32 0, %x
226 ; CHECK-NEXT: [[NEGX:%.*]] = sub nsw i32 0, [[X:%.*]]
231 %negx = sub nsw i32 0, %x
239 ; CHECK-NEXT: [[NEGX:%.*]] = sub nsw i32 0, [[X:%.*]]
244 %negx = sub nsw i32 0, %x
252 ; CHECK-NEXT: [[SUBX:%.*]] = sub i32 -2147483648, [[X:%.*]]
257 %subx = sub i32 -2147483648, %x
265 ; CHECK-NEXT: [[SUBX:%.*]] = sub <2 x i8> <i8 -6, i8 -128>, [[X:%.*]]
270 %subx = sub <2 x i8> <i8 -6, i8 -128>, %x
278 ; CHECK-NEXT: [[SUBX:%.*]] = sub nsw i32 -100, [[X:%.*]]
283 %subx = sub nsw i32 -100, %x
291 ; CHECK-NEXT: [[SUBX:%.*]] = sub nsw i32 -2147483647, [[X:%.*]]
296 %subx = sub nsw i32 -2147483647, %x
308 %negx = sub i128 0, %x
319 %negx = sub <2 x i7> zeroinitializer, %x
326 ; CHECK-NEXT: [[NEGX:%.*]] = sub i32 0, [[X:%.*]]
331 %negx = sub i32 0, %x
345 %negx = sub i8 0, %x
356 %negx = sub i8 0, %x
366 %negx = sub i8 0, %x
377 %negx = sub i8 0, %x
387 %negx = sub i8 0, %x
398 %negx = sub i8 0, %x
410 %negx = sub nsw i8 0, %x
420 %negx = sub nsw i8 0, %x
430 %negx = sub nsw i8 0, %x
440 %negx = sub nsw i8 0, %x
450 %negx = sub nsw i8 0, %x
460 %negx = sub nsw i8 0, %x
467 ; CHECK-NEXT: [[SUB:%.*]] = sub i32 [[X:%.*]], [[Y:%.*]]
468 ; CHECK-NEXT: call void @use(i32 [[SUB]])
472 %sub = sub i32 %x, %y
473 call void @use(i32 %sub)
474 %r = icmp eq i32 %sub, 0
480 ; CHECK-NEXT: [[SUB:%.*]] = sub <2 x i8> [[X:%.*]], [[Y:%.*]]
481 ; CHECK-NEXT: call void @use_vec(<2 x i8> [[SUB]])
485 %sub = sub <2 x i8> %x, %y
486 call void @use_vec(<2 x i8> %sub)
487 %r = icmp eq <2 x i8> %sub, zeroinitializer
493 ; CHECK-NEXT: [[SUB:%.*]] = sub i32 [[A:%.*]], [[B:%.*]]
494 ; CHECK-NEXT: store i32 [[SUB]], ptr [[P:%.*]], align 4
497 %sub = sub i32 %a, %b
498 store i32 %sub, ptr %p
499 %cmp = icmp eq i32 %sub, 0
504 ; Replacing the "SUB == 0" regresses codegen, and it may be hard to recover from that.
513 ; CHECK-NEXT: [[PHI_OUTER:%.*]] = phi i32 [ [[SUB:%.*]], [[BB_LOOP]] ], [ [[ARG:%.*]], [[BB_ENTRY:%.*]] ]
516 ; CHECK-NEXT: [[SUB]] = sub i32 [[PHI_OUTER]], [[MIN]]
517 ; CHECK-NEXT: [[COND_OUTER:%.*]] = icmp eq i32 [[SUB]], 0
526 %phi_outer = phi i32 [ %sub, %bb_loop ], [ %arg, %bb_entry ]
529 %sub = sub i32 %phi_outer, %min
530 %cond_outer = icmp eq i32 %sub, 0
537 ; TODO: It might be ok to replace the "SUB == 0" in this example if codegen can invert it.
544 ; CHECK-NEXT: [[PHI_OUTER:%.*]] = phi i32 [ [[SUB:%.*]], [[BB_LOOP]] ], [ [[X:%.*]], [[BB_ENTRY:%.*]] ]
545 ; CHECK-NEXT: [[SUB]] = sub i32 [[PHI_OUTER]], [[Y:%.*]]
546 ; CHECK-NEXT: [[COND_OUTER:%.*]] = icmp eq i32 [[SUB]], 0
555 %phi_outer = phi i32 [ %sub, %bb_loop ], [ %x, %bb_entry ]
556 %sub = sub i32 %phi_outer, %y
557 %cond_outer = icmp eq i32 %sub, 0
573 %sub = sub i32 0, %a
574 %cmp = icmp ne i32 %sub, %a
586 %sub = sub i32 0, %a
587 %cmp = icmp eq i32 %sub, %a
601 %sub = sub i32 0, %a
602 %cmp = icmp eq i32 %a, %sub ; negation on RHS
614 %sub = sub <2 x i32> zeroinitializer, %a
615 %cmp = icmp ne <2 x i32> %a, %sub
623 ; CHECK-NEXT: [[SUB:%.*]] = sub i32 0, [[A:%.*]]
624 ; CHECK-NEXT: call void @use(i32 [[SUB]])
625 ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[A]], [[SUB]]
629 %sub = sub i32 0, %a
630 call void @use(i32 %sub) ; add new user
631 %cmp = icmp eq i32 %sub, %a
639 ; CHECK-NEXT: [[SUB:%.*]] = sub i32 0, [[A:%.*]]
640 ; CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 [[A]], [[SUB]]
644 %sub = sub i32 0, %a
645 %cmp = icmp sgt i32 %sub, %a