[PATCH] D69252: [InstCombine] Canonicalize sadd.with.overflow to sadd.sat

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Nov 2 09:28:28 PDT 2019


dmgreen added a comment.

Alives, all of which pass:

  Name: SAdd_x_lt0
    %ao = sadd_overflow i8 %x, %y
    %a = extractvalue %ao, 0
    %o = extractvalue %ao, 1
    %c = icmp slt i8 %x, 0
    %s = select i1 %c, i8 -128, i8 127
    %x5 = select i1 %o, i8 %s, i8 %a
  =>
    %x5 = sadd_sat %x, %y
  
  Name: SAdd_x_lt1
    %ao = sadd_overflow i8 %x, %y
    %a = extractvalue %ao, 0
    %o = extractvalue %ao, 1
    %c = icmp slt i8 %x, 1
    %s = select i1 %c, i8 -128, i8 127
    %x5 = select i1 %o, i8 %s, i8 %a
  =>
    %x5 = sadd_sat %x, %y
  
  Name: SAdd_x_lg0
    %ao = sadd_overflow i8 %x, %y
    %a = extractvalue %ao, 0
    %o = extractvalue %ao, 1
    %c = icmp sgt i8 %x, 0
    %s = select i1 %c, i8 127, i8 -128
    %x5 = select i1 %o, i8 %s, i8 %a
  =>
    %x5 = sadd_sat %x, %y
  
  Name: SAdd_x_lg1
    %ao = sadd_overflow i8 %x, %y
    %a = extractvalue %ao, 0
    %o = extractvalue %ao, 1
    %c = icmp sgt i8 %x, -1
    %s = select i1 %c, i8 127, i8 -128
    %x5 = select i1 %o, i8 %s, i8 %a
  =>
    %x5 = sadd_sat %x, %y
  
  Name: SAdd_y_lt0
    %ao = sadd_overflow i8 %x, %y
    %a = extractvalue %ao, 0
    %o = extractvalue %ao, 1
    %c = icmp slt i8 %y, 0
    %s = select i1 %c, i8 -128, i8 127
    %x5 = select i1 %o, i8 %s, i8 %a
  =>
    %x5 = sadd_sat %x, %y
  
  Name: SAdd_y_lt1
    %ao = sadd_overflow i8 %x, %y
    %a = extractvalue %ao, 0
    %o = extractvalue %ao, 1
    %c = icmp slt i8 %y, 1
    %s = select i1 %c, i8 -128, i8 127
    %x5 = select i1 %o, i8 %s, i8 %a
  =>
    %x5 = sadd_sat %x, %y
  
  Name: SAdd_y_lg0
    %ao = sadd_overflow i8 %x, %y
    %a = extractvalue %ao, 0
    %o = extractvalue %ao, 1
    %c = icmp sgt i8 %y, 0
    %s = select i1 %c, i8 127, i8 -128
    %x5 = select i1 %o, i8 %s, i8 %a
  =>
    %x5 = sadd_sat %x, %y
  
  Name: SAdd_y_lg1
    %ao = sadd_overflow i8 %x, %y
    %a = extractvalue %ao, 0
    %o = extractvalue %ao, 1
    %c = icmp sgt i8 %y, -1
    %s = select i1 %c, i8 127, i8 -128
    %x5 = select i1 %o, i8 %s, i8 %a
  =>
    %x5 = sadd_sat %x, %y


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69252/new/

https://reviews.llvm.org/D69252





More information about the llvm-commits mailing list