195214673SLi Jia He; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 295214673SLi Jia He; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-unknown \ 395214673SLi Jia He; RUN: -ppc-asm-full-reg-names < %s | FileCheck %s 495214673SLi Jia He; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-unknown \ 595214673SLi Jia He; RUN: -ppc-asm-full-reg-names < %s | FileCheck %s 695214673SLi Jia He 795214673SLi Jia Hedefine zeroext i1 @eq1(i1 zeroext %x, i1 zeroext %y) { 895214673SLi Jia He; CHECK-LABEL: eq1: 995214673SLi Jia He; CHECK: # %bb.0: 10*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r4, r3 1195214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 1295214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 1395214673SLi Jia He; CHECK-NEXT: blr 1495214673SLi Jia He %sub = sext i1 %x to i32 1595214673SLi Jia He %conv3 = zext i1 %y to i32 1695214673SLi Jia He %cmp = icmp eq i32 %sub, %conv3 1795214673SLi Jia He ret i1 %cmp 1895214673SLi Jia He} 1995214673SLi Jia He 2095214673SLi Jia Hedefine zeroext i8 @eq2(i8 zeroext %x, i8 zeroext %y) { 2195214673SLi Jia He; CHECK-LABEL: eq2: 2295214673SLi Jia He; CHECK: # %bb.0: 23*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r4, r3 2495214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 2595214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 2695214673SLi Jia He; CHECK-NEXT: blr 2795214673SLi Jia He %conv = zext i8 %x to i32 2895214673SLi Jia He %sub = sub nsw i32 0, %conv 2995214673SLi Jia He %conv1 = zext i8 %y to i32 3095214673SLi Jia He %cmp = icmp eq i32 %sub, %conv1 3195214673SLi Jia He %conv3 = zext i1 %cmp to i8 3295214673SLi Jia He ret i8 %conv3 3395214673SLi Jia He} 3495214673SLi Jia He 3595214673SLi Jia Hedefine signext i16 @eq3(i16 signext %x, i16 signext %y) { 3695214673SLi Jia He; CHECK-LABEL: eq3: 3795214673SLi Jia He; CHECK: # %bb.0: 38*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r4, r3 3995214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 4095214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 4195214673SLi Jia He; CHECK-NEXT: blr 4295214673SLi Jia He %conv = sext i16 %x to i32 4395214673SLi Jia He %sub = sub nsw i32 0, %conv 4495214673SLi Jia He %conv1 = sext i16 %y to i32 4595214673SLi Jia He %cmp = icmp eq i32 %sub, %conv1 4695214673SLi Jia He %conv3 = zext i1 %cmp to i16 4795214673SLi Jia He ret i16 %conv3 4895214673SLi Jia He} 4995214673SLi Jia He 5095214673SLi Jia Hedefine zeroext i16 @eq4(i16 zeroext %x, i16 zeroext %y) { 5195214673SLi Jia He; CHECK-LABEL: eq4: 5295214673SLi Jia He; CHECK: # %bb.0: 53*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r4, r3 5495214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 5595214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 5695214673SLi Jia He; CHECK-NEXT: blr 5795214673SLi Jia He %conv = zext i16 %x to i32 5895214673SLi Jia He %sub = sub nsw i32 0, %conv 5995214673SLi Jia He %conv1 = zext i16 %y to i32 6095214673SLi Jia He %cmp = icmp eq i32 %sub, %conv1 6195214673SLi Jia He %conv3 = zext i1 %cmp to i16 6295214673SLi Jia He ret i16 %conv3 6395214673SLi Jia He} 6495214673SLi Jia He 6595214673SLi Jia Hedefine signext i32 @eq5(i32 signext %x, i32 signext %y) { 6695214673SLi Jia He; CHECK-LABEL: eq5: 6795214673SLi Jia He; CHECK: # %bb.0: 68*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r4, r3 6995214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 7095214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 7195214673SLi Jia He; CHECK-NEXT: blr 7295214673SLi Jia He %sub = sub nsw i32 0, %x 7395214673SLi Jia He %cmp = icmp eq i32 %sub, %y 7495214673SLi Jia He %conv = zext i1 %cmp to i32 7595214673SLi Jia He ret i32 %conv 7695214673SLi Jia He} 7795214673SLi Jia He 7895214673SLi Jia Hedefine zeroext i32 @eq6(i32 zeroext %x, i32 zeroext %y) { 7995214673SLi Jia He; CHECK-LABEL: eq6: 8095214673SLi Jia He; CHECK: # %bb.0: 81*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r4, r3 8295214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 8395214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 8495214673SLi Jia He; CHECK-NEXT: blr 8595214673SLi Jia He %sub = sub i32 0, %x 8695214673SLi Jia He %cmp = icmp eq i32 %sub, %y 8795214673SLi Jia He %conv = zext i1 %cmp to i32 8895214673SLi Jia He ret i32 %conv 8995214673SLi Jia He} 9095214673SLi Jia He 9195214673SLi Jia Hedefine i64 @eq7(i64 %x, i64 %y) { 9295214673SLi Jia He; CHECK-LABEL: eq7: 9395214673SLi Jia He; CHECK: # %bb.0: 94*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r4, r3 9595214673SLi Jia He; CHECK-NEXT: cntlzd r3, r3 9695214673SLi Jia He; CHECK-NEXT: rldicl r3, r3, 58, 63 9795214673SLi Jia He; CHECK-NEXT: blr 9895214673SLi Jia He %sub = sub nsw i64 0, %x 9995214673SLi Jia He %cmp = icmp eq i64 %sub, %y 10095214673SLi Jia He %zext = zext i1 %cmp to i64 10195214673SLi Jia He ret i64 %zext 10295214673SLi Jia He} 10395214673SLi Jia He 10495214673SLi Jia Hedefine zeroext i1 @eq8(i1 zeroext %x, i1 zeroext %y) { 10595214673SLi Jia He; CHECK-LABEL: eq8: 10695214673SLi Jia He; CHECK: # %bb.0: 107*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r4, r3 10895214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 10995214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 11095214673SLi Jia He; CHECK-NEXT: blr 11195214673SLi Jia He %conv = zext i1 %y to i32 11295214673SLi Jia He %sub = sext i1 %x to i32 11395214673SLi Jia He %cmp = icmp eq i32 %conv, %sub 11495214673SLi Jia He ret i1 %cmp 11595214673SLi Jia He} 11695214673SLi Jia He 11795214673SLi Jia Hedefine zeroext i8 @eq9(i8 zeroext %x, i8 zeroext %y) { 11895214673SLi Jia He; CHECK-LABEL: eq9: 11995214673SLi Jia He; CHECK: # %bb.0: 120*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r3, r4 12195214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 12295214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 12395214673SLi Jia He; CHECK-NEXT: blr 12495214673SLi Jia He %conv = zext i8 %x to i32 12595214673SLi Jia He %conv1 = zext i8 %y to i32 12695214673SLi Jia He %sub = sub nsw i32 0, %conv1 12795214673SLi Jia He %cmp = icmp eq i32 %conv, %sub 12895214673SLi Jia He %conv3 = zext i1 %cmp to i8 12995214673SLi Jia He ret i8 %conv3 13095214673SLi Jia He} 13195214673SLi Jia He 13295214673SLi Jia Hedefine signext i16 @eq10(i16 signext %x, i16 signext %y) { 13395214673SLi Jia He; CHECK-LABEL: eq10: 13495214673SLi Jia He; CHECK: # %bb.0: 135*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r3, r4 13695214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 13795214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 13895214673SLi Jia He; CHECK-NEXT: blr 13995214673SLi Jia He %conv = sext i16 %x to i32 14095214673SLi Jia He %conv1 = sext i16 %y to i32 14195214673SLi Jia He %sub = sub nsw i32 0, %conv1 14295214673SLi Jia He %cmp = icmp eq i32 %conv, %sub 14395214673SLi Jia He %conv3 = zext i1 %cmp to i16 14495214673SLi Jia He ret i16 %conv3 14595214673SLi Jia He} 14695214673SLi Jia He 14795214673SLi Jia Hedefine zeroext i16 @eq11(i16 zeroext %x, i16 zeroext %y) { 14895214673SLi Jia He; CHECK-LABEL: eq11: 14995214673SLi Jia He; CHECK: # %bb.0: 150*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r3, r4 15195214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 15295214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 15395214673SLi Jia He; CHECK-NEXT: blr 15495214673SLi Jia He %conv = zext i16 %x to i32 15595214673SLi Jia He %conv1 = zext i16 %y to i32 15695214673SLi Jia He %sub = sub nsw i32 0, %conv1 15795214673SLi Jia He %cmp = icmp eq i32 %conv, %sub 15895214673SLi Jia He %conv3 = zext i1 %cmp to i16 15995214673SLi Jia He ret i16 %conv3 16095214673SLi Jia He} 16195214673SLi Jia He 16295214673SLi Jia Hedefine signext i32 @eq12(i32 signext %x, i32 signext %y) { 16395214673SLi Jia He; CHECK-LABEL: eq12: 16495214673SLi Jia He; CHECK: # %bb.0: 165*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r3, r4 16695214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 16795214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 16895214673SLi Jia He; CHECK-NEXT: blr 16995214673SLi Jia He %sub = sub nsw i32 0, %y 17095214673SLi Jia He %cmp = icmp eq i32 %sub, %x 17195214673SLi Jia He %conv = zext i1 %cmp to i32 17295214673SLi Jia He ret i32 %conv 17395214673SLi Jia He} 17495214673SLi Jia He 17595214673SLi Jia Hedefine zeroext i32 @eq13(i32 zeroext %x, i32 zeroext %y) { 17695214673SLi Jia He; CHECK-LABEL: eq13: 17795214673SLi Jia He; CHECK: # %bb.0: 178*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r3, r4 17995214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 18095214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 18195214673SLi Jia He; CHECK-NEXT: blr 18295214673SLi Jia He %sub = sub i32 0, %y 18395214673SLi Jia He %cmp = icmp eq i32 %sub, %x 18495214673SLi Jia He %conv = zext i1 %cmp to i32 18595214673SLi Jia He ret i32 %conv 18695214673SLi Jia He} 18795214673SLi Jia He 18895214673SLi Jia Hedefine i64 @eq14(i64 %x, i64 %y) { 18995214673SLi Jia He; CHECK-LABEL: eq14: 19095214673SLi Jia He; CHECK: # %bb.0: 191*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r3, r4 19295214673SLi Jia He; CHECK-NEXT: cntlzd r3, r3 19395214673SLi Jia He; CHECK-NEXT: rldicl r3, r3, 58, 63 19495214673SLi Jia He; CHECK-NEXT: blr 19595214673SLi Jia He %sub = sub nsw i64 0, %y 19695214673SLi Jia He %cmp = icmp eq i64 %sub, %x 19795214673SLi Jia He %conv1 = zext i1 %cmp to i64 19895214673SLi Jia He ret i64 %conv1 19995214673SLi Jia He} 20095214673SLi Jia He 20195214673SLi Jia Hedefine zeroext i1 @neq1(i1 zeroext %x, i1 zeroext %y) { 20295214673SLi Jia He; CHECK-LABEL: neq1: 20395214673SLi Jia He; CHECK: # %bb.0: 204*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r4, r3 20595214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 20695214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 20795214673SLi Jia He; CHECK-NEXT: xori r3, r3, 1 20895214673SLi Jia He; CHECK-NEXT: blr 20995214673SLi Jia He %sub = sext i1 %x to i32 21095214673SLi Jia He %conv3 = zext i1 %y to i32 21195214673SLi Jia He %cmp = icmp ne i32 %sub, %conv3 21295214673SLi Jia He ret i1 %cmp 21395214673SLi Jia He} 21495214673SLi Jia He 21595214673SLi Jia Hedefine zeroext i8 @neq2(i8 zeroext %x, i8 zeroext %y) { 21695214673SLi Jia He; CHECK-LABEL: neq2: 21795214673SLi Jia He; CHECK: # %bb.0: 218*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r4, r3 21995214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 22095214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 22195214673SLi Jia He; CHECK-NEXT: xori r3, r3, 1 22295214673SLi Jia He; CHECK-NEXT: blr 22395214673SLi Jia He %conv = zext i8 %x to i32 22495214673SLi Jia He %sub = sub nsw i32 0, %conv 22595214673SLi Jia He %conv1 = zext i8 %y to i32 22695214673SLi Jia He %cmp = icmp ne i32 %sub, %conv1 22795214673SLi Jia He %conv3 = zext i1 %cmp to i8 22895214673SLi Jia He ret i8 %conv3 22995214673SLi Jia He} 23095214673SLi Jia He 23195214673SLi Jia Hedefine signext i16 @neq3(i16 signext %x, i16 signext %y) { 23295214673SLi Jia He; CHECK-LABEL: neq3: 23395214673SLi Jia He; CHECK: # %bb.0: 234*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r4, r3 23595214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 23695214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 23795214673SLi Jia He; CHECK-NEXT: xori r3, r3, 1 23895214673SLi Jia He; CHECK-NEXT: blr 23995214673SLi Jia He %conv = sext i16 %x to i32 24095214673SLi Jia He %sub = sub nsw i32 0, %conv 24195214673SLi Jia He %conv1 = sext i16 %y to i32 24295214673SLi Jia He %cmp = icmp ne i32 %sub, %conv1 24395214673SLi Jia He %conv3 = zext i1 %cmp to i16 24495214673SLi Jia He ret i16 %conv3 24595214673SLi Jia He} 24695214673SLi Jia He 24795214673SLi Jia Hedefine zeroext i16 @neq4(i16 zeroext %x, i16 zeroext %y) { 24895214673SLi Jia He; CHECK-LABEL: neq4: 24995214673SLi Jia He; CHECK: # %bb.0: 250*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r4, r3 25195214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 25295214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 25395214673SLi Jia He; CHECK-NEXT: xori r3, r3, 1 25495214673SLi Jia He; CHECK-NEXT: blr 25595214673SLi Jia He %conv = zext i16 %x to i32 25695214673SLi Jia He %sub = sub nsw i32 0, %conv 25795214673SLi Jia He %conv1 = zext i16 %y to i32 25895214673SLi Jia He %cmp = icmp ne i32 %sub, %conv1 25995214673SLi Jia He %conv3 = zext i1 %cmp to i16 26095214673SLi Jia He ret i16 %conv3 26195214673SLi Jia He} 26295214673SLi Jia He 26395214673SLi Jia Hedefine signext i32 @neq5(i32 signext %x, i32 signext %y) { 26495214673SLi Jia He; CHECK-LABEL: neq5: 26595214673SLi Jia He; CHECK: # %bb.0: 266*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r4, r3 26795214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 26895214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 26995214673SLi Jia He; CHECK-NEXT: xori r3, r3, 1 27095214673SLi Jia He; CHECK-NEXT: blr 27195214673SLi Jia He %sub = sub nsw i32 0, %x 27295214673SLi Jia He %cmp = icmp ne i32 %sub, %y 27395214673SLi Jia He %conv = zext i1 %cmp to i32 27495214673SLi Jia He ret i32 %conv 27595214673SLi Jia He} 27695214673SLi Jia He 27795214673SLi Jia Hedefine zeroext i32 @neq6(i32 zeroext %x, i32 zeroext %y) { 27895214673SLi Jia He; CHECK-LABEL: neq6: 27995214673SLi Jia He; CHECK: # %bb.0: 280*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r4, r3 28195214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 28295214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 28395214673SLi Jia He; CHECK-NEXT: xori r3, r3, 1 28495214673SLi Jia He; CHECK-NEXT: blr 28595214673SLi Jia He %sub = sub i32 0, %x 28695214673SLi Jia He %cmp = icmp ne i32 %sub, %y 28795214673SLi Jia He %conv = zext i1 %cmp to i32 28895214673SLi Jia He ret i32 %conv 28995214673SLi Jia He} 29095214673SLi Jia He 29195214673SLi Jia Hedefine i64 @neq7(i64 %x, i64 %y) { 29295214673SLi Jia He; CHECK-LABEL: neq7: 29395214673SLi Jia He; CHECK: # %bb.0: 294*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r4, r3 29595214673SLi Jia He; CHECK-NEXT: addic r4, r3, -1 29695214673SLi Jia He; CHECK-NEXT: subfe r3, r4, r3 29795214673SLi Jia He; CHECK-NEXT: blr 29895214673SLi Jia He %sub = sub nsw i64 0, %x 29995214673SLi Jia He %cmp = icmp ne i64 %sub, %y 30095214673SLi Jia He %zext = zext i1 %cmp to i64 30195214673SLi Jia He ret i64 %zext 30295214673SLi Jia He} 30395214673SLi Jia He 30495214673SLi Jia Hedefine zeroext i1 @neq8(i1 zeroext %x, i1 zeroext %y) { 30595214673SLi Jia He; CHECK-LABEL: neq8: 30695214673SLi Jia He; CHECK: # %bb.0: 307*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r4, r3 30895214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 30995214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 31095214673SLi Jia He; CHECK-NEXT: xori r3, r3, 1 31195214673SLi Jia He; CHECK-NEXT: blr 31295214673SLi Jia He %conv = zext i1 %y to i32 31395214673SLi Jia He %sub = sext i1 %x to i32 31495214673SLi Jia He %cmp = icmp ne i32 %conv, %sub 31595214673SLi Jia He ret i1 %cmp 31695214673SLi Jia He} 31795214673SLi Jia He 31895214673SLi Jia Hedefine zeroext i8 @neq9(i8 zeroext %x, i8 zeroext %y) { 31995214673SLi Jia He; CHECK-LABEL: neq9: 32095214673SLi Jia He; CHECK: # %bb.0: 321*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r4, r3 32295214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 32395214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 32495214673SLi Jia He; CHECK-NEXT: xori r3, r3, 1 32595214673SLi Jia He; CHECK-NEXT: blr 32695214673SLi Jia He %conv = zext i8 %y to i32 32795214673SLi Jia He %conv1 = zext i8 %x to i32 32895214673SLi Jia He %sub = sub nsw i32 0, %conv1 32995214673SLi Jia He %cmp = icmp ne i32 %conv, %sub 33095214673SLi Jia He %conv3 = zext i1 %cmp to i8 33195214673SLi Jia He ret i8 %conv3 33295214673SLi Jia He} 33395214673SLi Jia He 33495214673SLi Jia Hedefine signext i16 @neq10(i16 signext %x, i16 signext %y) { 33595214673SLi Jia He; CHECK-LABEL: neq10: 33695214673SLi Jia He; CHECK: # %bb.0: 337*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r4, r3 33895214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 33995214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 34095214673SLi Jia He; CHECK-NEXT: xori r3, r3, 1 34195214673SLi Jia He; CHECK-NEXT: blr 34295214673SLi Jia He %conv = sext i16 %y to i32 34395214673SLi Jia He %conv1 = sext i16 %x to i32 34495214673SLi Jia He %sub = sub nsw i32 0, %conv1 34595214673SLi Jia He %cmp = icmp ne i32 %conv, %sub 34695214673SLi Jia He %conv3 = zext i1 %cmp to i16 34795214673SLi Jia He ret i16 %conv3 34895214673SLi Jia He} 34995214673SLi Jia He 35095214673SLi Jia Hedefine zeroext i16 @neq11(i16 zeroext %x, i16 zeroext %y) { 35195214673SLi Jia He; CHECK-LABEL: neq11: 35295214673SLi Jia He; CHECK: # %bb.0: # %entry 353*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r4, r3 35495214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 35595214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 35695214673SLi Jia He; CHECK-NEXT: xori r3, r3, 1 35795214673SLi Jia He; CHECK-NEXT: blr 35895214673SLi Jia Heentry: 35995214673SLi Jia He %conv = zext i16 %y to i32 36095214673SLi Jia He %conv1 = zext i16 %x to i32 36195214673SLi Jia He %sub = sub nsw i32 0, %conv1 36295214673SLi Jia He %cmp = icmp ne i32 %conv, %sub 36395214673SLi Jia He %conv3 = zext i1 %cmp to i16 36495214673SLi Jia He ret i16 %conv3 36595214673SLi Jia He} 36695214673SLi Jia He 36795214673SLi Jia Hedefine signext i32 @neq12(i32 signext %x, i32 signext %y) { 36895214673SLi Jia He; CHECK-LABEL: neq12: 36995214673SLi Jia He; CHECK: # %bb.0: # %entry 370*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r4, r3 37195214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 37295214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 37395214673SLi Jia He; CHECK-NEXT: xori r3, r3, 1 37495214673SLi Jia He; CHECK-NEXT: blr 37595214673SLi Jia Heentry: 37695214673SLi Jia He %sub = sub nsw i32 0, %x 37795214673SLi Jia He %cmp = icmp ne i32 %sub, %y 37895214673SLi Jia He %conv = zext i1 %cmp to i32 37995214673SLi Jia He ret i32 %conv 38095214673SLi Jia He} 38195214673SLi Jia He 38295214673SLi Jia Hedefine zeroext i32 @neq13(i32 zeroext %x, i32 zeroext %y) { 38395214673SLi Jia He; CHECK-LABEL: neq13: 38495214673SLi Jia He; CHECK: # %bb.0: # %entry 385*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r4, r3 38695214673SLi Jia He; CHECK-NEXT: cntlzw r3, r3 38795214673SLi Jia He; CHECK-NEXT: srwi r3, r3, 5 38895214673SLi Jia He; CHECK-NEXT: xori r3, r3, 1 38995214673SLi Jia He; CHECK-NEXT: blr 39095214673SLi Jia Heentry: 39195214673SLi Jia He %sub = sub i32 0, %x 39295214673SLi Jia He %cmp = icmp ne i32 %sub, %y 39395214673SLi Jia He %conv = zext i1 %cmp to i32 39495214673SLi Jia He ret i32 %conv 39595214673SLi Jia He} 39695214673SLi Jia He 39795214673SLi Jia Hedefine i64 @neq14(i64 %x, i64 %y) { 39895214673SLi Jia He; CHECK-LABEL: neq14: 39995214673SLi Jia He; CHECK: # %bb.0: 400*f6fb752fSLi Jia He; CHECK-NEXT: add r3, r4, r3 40195214673SLi Jia He; CHECK-NEXT: addic r4, r3, -1 40295214673SLi Jia He; CHECK-NEXT: subfe r3, r4, r3 40395214673SLi Jia He; CHECK-NEXT: blr 40495214673SLi Jia He %sub = sub nsw i64 0, %x 40595214673SLi Jia He %cmp = icmp ne i64 %y, %sub 40695214673SLi Jia He %zext = zext i1 %cmp to i64 40795214673SLi Jia He ret i64 %zext 40895214673SLi Jia He} 409