brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 6041db7 Raw
61 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc < %s -mtriple=aarch64-- | FileCheck %s3 4define zeroext i32 @trunc_nuw_nsw_urem(i64 %x) nounwind {5; CHECK-LABEL: trunc_nuw_nsw_urem:6; CHECK:       // %bb.0: // %entry7; CHECK-NEXT:    mov w8, #5977 // =0x17598; CHECK-NEXT:    mov w9, #10000 // =0x27109; CHECK-NEXT:    movk w8, #53687, lsl #1610; CHECK-NEXT:    mul x8, x0, x811; CHECK-NEXT:    lsr x8, x8, #4512; CHECK-NEXT:    msub w0, w8, w9, w013; CHECK-NEXT:    ret14entry:15  %trunc = trunc nuw nsw i64 %x to i3216  %rem = urem i32 %trunc, 1000017  ret i32 %rem18}19 20define i64 @zext_nneg_udiv_trunc_nuw(i64 %x) nounwind {21; CHECK-LABEL: zext_nneg_udiv_trunc_nuw:22; CHECK:       // %bb.0: // %entry23; CHECK-NEXT:    mov w8, #52429 // =0xcccd24; CHECK-NEXT:    mul w8, w0, w825; CHECK-NEXT:    lsr w0, w8, #2326; CHECK-NEXT:    ret27entry:28  %trunc = trunc nuw i64 %x to i1629  %div = udiv i16 %trunc, 16030  %ext = zext nneg i16 %div to i6431  ret i64 %ext32}33 34define i64 @sext_udiv_trunc_nuw(i64 %x) nounwind {35; CHECK-LABEL: sext_udiv_trunc_nuw:36; CHECK:       // %bb.0: // %entry37; CHECK-NEXT:    mov w8, #52429 // =0xcccd38; CHECK-NEXT:    mul w8, w0, w839; CHECK-NEXT:    lsr w0, w8, #2340; CHECK-NEXT:    ret41entry:42  %trunc = trunc nuw i64 %x to i1643  %div = udiv i16 %trunc, 16044  %ext = sext i16 %div to i6445  ret i64 %ext46}47 48define ptr @gep_nusw_zext_nneg_add_trunc_nuw_nsw(ptr %p, i64 %x) nounwind {49; CHECK-LABEL: gep_nusw_zext_nneg_add_trunc_nuw_nsw:50; CHECK:       // %bb.0: // %entry51; CHECK-NEXT:    add w8, w1, #552; CHECK-NEXT:    add x0, x0, w8, uxtw #253; CHECK-NEXT:    ret54entry:55  %trunc = trunc nuw nsw i64 %x to i3256  %add = add nuw nsw i32 %trunc, 557  %offset = zext nneg i32 %add to i6458  %gep = getelementptr nusw float, ptr %p, i64 %offset59  ret ptr %gep60}61