brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · e00a64d Raw
46 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=aarch64 -mattr=+sve -verify-machineinstrs < %s | FileCheck %s3 4define i64 @vscale_lshr(i64 %TC) {5; CHECK-LABEL: vscale_lshr:6; CHECK:       // %bb.0:7; CHECK-NEXT:    rdvl x8, #18; CHECK-NEXT:    lsr x8, x8, #49; CHECK-NEXT:    lsr x8, x8, #310; CHECK-NEXT:    sub x8, x8, #111; CHECK-NEXT:    and x0, x0, x812; CHECK-NEXT:    ret13  %vscale = call i64 @llvm.vscale.i64()14  %shifted = lshr i64 %vscale, 315  %urem = urem i64 %TC, %shifted16  ret i64 %urem17}18 19define i64 @vscale(i64 %TC) {20; CHECK-LABEL: vscale:21; CHECK:       // %bb.0:22; CHECK-NEXT:    rdvl x8, #123; CHECK-NEXT:    lsr x8, x8, #424; CHECK-NEXT:    sub x8, x8, #125; CHECK-NEXT:    and x0, x0, x826; CHECK-NEXT:    ret27  %vscale = call i64 @llvm.vscale.i64()28  %urem = urem i64 %TC, %vscale29  ret i64 %urem30}31 32define i64 @vscale_shl(i64 %TC) {33; CHECK-LABEL: vscale_shl:34; CHECK:       // %bb.0:35; CHECK-NEXT:    cnth x836; CHECK-NEXT:    sub x8, x8, #137; CHECK-NEXT:    and x0, x0, x838; CHECK-NEXT:    ret39  %vscale = call i64 @llvm.vscale.i64()40  %shifted = shl i64 %vscale, 341  %urem = urem i64 %TC, %shifted42  ret i64 %urem43}44 45declare i64 @llvm.vscale.i64()46