# RUN: llc -mtriple aarch64 -passes="print" %s -filetype=null 2>&1 | FileCheck %s # CHECK-LABEL: name: @urem_pow2 # CHECK-NEXT: %0:_ KnownBits:???????????????????????????????? SignBits:1 # CHECK-NEXT: %1:_ KnownBits:00000000000000000000000000001000 SignBits:28 # CHECK-NEXT: %2:_ KnownBits:00000000000000000000000000000??? SignBits:29 name: urem_pow2 body: | bb.1: liveins: $w0 %0:_(s32) = COPY $w0 %1:_(s32) = G_CONSTANT i32 8 %2:_(s32) = G_UREM %0, %1 $w0 = COPY %2(s32) RET_ReallyLR implicit $w0 ... # CHECK-LABEL: name: @urem_non_pow2 # CHECK-NEXT: %0:_ KnownBits:???????????????????????????????? SignBits:1 # CHECK-NEXT: %1:_ KnownBits:00000000000000000000000000001010 SignBits:28 # CHECK-NEXT: %2:_ KnownBits:0000000000000000000000000000???? SignBits:28 name: urem_non_pow2 body: | bb.1: liveins: $w0 %0:_(s32) = COPY $w0 %1:_(s32) = G_CONSTANT i32 10 %2:_(s32) = G_UREM %0, %1 $w0 = COPY %2(s32) RET_ReallyLR implicit $w0 ... # CHECK-LABEL: name: @urem # CHECK-NEXT: %0:_ KnownBits:???????????????????????????????? SignBits:1 # CHECK-NEXT: %1:_ KnownBits:???????????????????????????????? SignBits:1 # CHECK-NEXT: %2:_ KnownBits:???????????????????????????????? SignBits:1 name: urem body: | bb.1: liveins: $w0, $w1 %0:_(s32) = COPY $w0 %1:_(s32) = COPY $w1 %2:_(s32) = G_UREM %0, %1 $w0 = COPY %2(s32) RET_ReallyLR implicit $w0 ... # CHECK-LABEL: name: @urem_implicit_def # CHECK-NEXT: %0:_ KnownBits:???????????????????????????????? SignBits:1 # CHECK-NEXT: %1:_ KnownBits:00000000000000000000000000001000 SignBits:28 # CHECK-NEXT: %2:_ KnownBits:00000000000000000000000000000??? SignBits:29 name: urem_implicit_def body: | bb.1: liveins: $w0 %0:_(s32) = G_IMPLICIT_DEF %1:_(s32) = G_CONSTANT i32 8 %2:_(s32) = G_UREM %0, %1 $w0 = COPY %2(s32) RET_ReallyLR implicit $w0 ... # CHECK-LABEL: name: @urem_both_implicit_def # CHECK-NEXT: %0:_ KnownBits:???????????????????????????????? SignBits:1 # CHECK-NEXT: %1:_ KnownBits:???????????????????????????????? SignBits:1 # CHECK-NEXT: %2:_ KnownBits:???????????????????????????????? SignBits:1 name: urem_both_implicit_def body: | bb.1: %0:_(s32) = G_IMPLICIT_DEF %1:_(s32) = G_IMPLICIT_DEF %2:_(s32) = G_UREM %0, %1 $w0 = COPY %2(s32) RET_ReallyLR implicit $w0 ... # CHECK-LABEL: name: @urem_const_const # CHECK-NEXT: %0:_ KnownBits:00000000000000000000000000001010 SignBits:28 # CHECK-NEXT: %1:_ KnownBits:00000000000000000000000000000011 SignBits:30 # CHECK-NEXT: %2:_ KnownBits:000000000000000000000000000000?? SignBits:30 name: urem_const_const body: | bb.1: %0:_(s32) = G_CONSTANT i32 10 %1:_(s32) = G_CONSTANT i32 3 %2:_(s32) = G_UREM %0, %1 $w0 = COPY %2(s32) RET_ReallyLR implicit $w0 ...