File tree Expand file tree Collapse file tree 2 files changed +32
-0
lines changed Expand file tree Collapse file tree 2 files changed +32
-0
lines changed Original file line number Diff line number Diff line change @@ -240,6 +240,23 @@ define i64 @cntd_all() {
240240}
241241
242242
243+ define i64 @udiv () vscale_range(1 , 16 ) {
244+ ; CHECK-LABEL: @udiv(
245+ ; CHECK-NEXT: [[TMP1:%.*]] = call i64 @llvm.vscale.i64()
246+ ; CHECK-NEXT: [[A:%.*]] = shl nuw nsw i64 [[TMP1]], 4
247+ ; CHECK-NEXT: [[TMP2:%.*]] = call i64 @llvm.vscale.i64()
248+ ; CHECK-NEXT: [[B:%.*]] = shl nuw nsw i64 [[TMP2]], 2
249+ ; CHECK-NEXT: [[TMP3:%.*]] = call range(i64 2, 65) i64 @llvm.cttz.i64(i64 [[B]], i1 true)
250+ ; CHECK-NEXT: [[C1:%.*]] = lshr i64 [[A]], [[TMP3]]
251+ ; CHECK-NEXT: ret i64 [[C1]]
252+ ;
253+ %a = call i64 @llvm.aarch64.sve.cntb (i32 31 )
254+ %b = call i64 @llvm.aarch64.sve.cntw (i32 31 )
255+ %c = udiv i64 %a , %b
256+ ret i64 %c
257+ }
258+
259+
243260declare i64 @llvm.aarch64.sve.cntb (i32 %pattern )
244261declare i64 @llvm.aarch64.sve.cnth (i32 %pattern )
245262declare i64 @llvm.aarch64.sve.cntw (i32 %pattern )
Original file line number Diff line number Diff line change 1+ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2+ ; RUN: opt -passes="default<O1>" -mattr=+sve -S -o - %s | FileCheck %s
3+
4+ target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
5+ target triple = "aarch64"
6+
7+ define i64 @udiv () vscale_range(1 , 16 ) {
8+ ; CHECK-LABEL: @udiv(
9+ ; CHECK-NEXT: ret i64 4
10+ ;
11+ %a = call i64 @llvm.aarch64.sve.cntb (i32 31 )
12+ %b = call i64 @llvm.aarch64.sve.cntw (i32 31 )
13+ %c = udiv i64 %a , %b
14+ ret i64 %c
15+ }
You can’t perform that action at this time.
0 commit comments