brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 3625ac6 Raw
51 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=s390x-linux-gnu -mcpu=z13 < %s  | FileCheck %s3 4; Test that DAGCombiner gets helped by getKnownBitsForTargetNode() when5; BITCAST nodes are involved on a big-endian target.6;7; The EXTRACT_VECTOR_ELT is done first into an i32, and then AND:ed with8; 1. The AND is not actually necessary since the element contains a CC (i1)9; value. Test that the BITCAST nodes in the DAG when computing KnownBits is10; handled so that the AND is removed. If this succeeds, this results in a CHI11; instead of TMLL.12 13define void @fun(i64 %a0) {14; CHECK-LABEL: fun:15; CHECK:       # %bb.0: # %entry16; CHECK-NEXT:    lghi %r1, 017; CHECK-NEXT:  .LBB0_1: # %lab018; CHECK-NEXT:    # =>This Inner Loop Header: Depth=119; CHECK-NEXT:    la %r0, 2(%r1)20; CHECK-NEXT:    la %r1, 1(%r1)21; CHECK-NEXT:    cgr %r1, %r222; CHECK-NEXT:    lhi %r3, 023; CHECK-NEXT:    lochie %r3, 124; CHECK-NEXT:    cgr %r0, %r225; CHECK-NEXT:    lhi %r0, 026; CHECK-NEXT:    lochie %r0, 127; CHECK-NEXT:    vlvgp %v0, %r3, %r328; CHECK-NEXT:    vlvgp %v1, %r0, %r029; CHECK-NEXT:    vx %v0, %v0, %v130; CHECK-NEXT:    vlgvf %r0, %v0, 131; CHECK-NEXT:    chi %r0, 032; CHECK-NEXT:    locghie %r1, 033; CHECK-NEXT:    j .LBB0_134entry:35  br label %lab036 37lab0:38  %phi = phi i64 [ %sel, %lab0 ], [ 0, %entry ]39  %add = add nuw nsw i64 %phi, 140  %add2 = add nuw nsw i64 %phi, 241  %cmp = icmp eq i64 %add, %a042  %cmp2 = icmp eq i64 %add2, %a043  %ins = insertelement <2 x i1> undef, i1 %cmp, i32 044  %ins2 = insertelement <2 x i1> undef, i1 %cmp2, i32 045  %xor = xor <2 x i1> %ins, %ins246  %extr = extractelement <2 x i1> %xor, i32 047 48  %sel = select i1 %extr, i64 %add, i64 049  br label %lab050}51