52 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=x86_64-unknown-unknown < %s | FileCheck %s3 4; Verify that backwards propagation of a mask does not affect5; nodes with multiple result values. In both tests, the stored6; 32-bit value should be masked to an 8-bit number (and 255).7 8@b = dso_local local_unnamed_addr global i32 918, align 49@d = dso_local local_unnamed_addr global i32 8089, align 410@c = common dso_local local_unnamed_addr global i32 0, align 411@a = common dso_local local_unnamed_addr global i32 0, align 412 13define dso_local void @PR37667() {14; CHECK-LABEL: PR37667:15; CHECK: # %bb.0:16; CHECK-NEXT: movl b(%rip), %eax17; CHECK-NEXT: xorl %edx, %edx18; CHECK-NEXT: divl d(%rip)19; CHECK-NEXT: orl c(%rip), %edx20; CHECK-NEXT: movzbl %dl, %eax21; CHECK-NEXT: movl %eax, a(%rip)22; CHECK-NEXT: retq23 %t0 = load i32, ptr @c, align 424 %t1 = load i32, ptr @b, align 425 %t2 = load i32, ptr @d, align 426 %rem = urem i32 %t1, %t227 %or = or i32 %rem, %t028 %conv1 = and i32 %or, 25529 store i32 %conv1, ptr @a, align 430 ret void31}32 33define dso_local void @PR37060() {34; CHECK-LABEL: PR37060:35; CHECK: # %bb.0:36; CHECK-NEXT: movl $-1, %eax37; CHECK-NEXT: cltd38; CHECK-NEXT: idivl c(%rip)39; CHECK-NEXT: xorl b(%rip), %edx40; CHECK-NEXT: movzbl %dl, %eax41; CHECK-NEXT: movl %eax, a(%rip)42; CHECK-NEXT: retq43 %t0 = load i32, ptr @c, align 444 %rem = srem i32 -1, %t045 %t2 = load i32, ptr @b, align 446 %xor = xor i32 %t2, %rem47 %conv3 = and i32 %xor, 25548 store i32 %conv3, ptr @a, align 449 ret void50}51 52