1f043dac2SJaved Absar; REQUIRES: asserts 2*c4cccea4SDavid Green; RUN: llc < %s -mtriple=armv8r-eabi -mcpu=cortex-r52 -verify-misched -debug-only=machine-scheduler -o - 2>&1 > /dev/null | FileCheck %s --check-prefix=CHECK --check-prefix=R52_SCHED 31527baabSMatthias Braun; RUN: llc < %s -mtriple=armv8r-eabi -mcpu=generic -enable-misched -verify-misched -debug-only=machine-scheduler -o - 2>&1 > /dev/null | FileCheck %s --check-prefix=CHECK --check-prefix=GENERIC 4f043dac2SJaved Absar; 5f043dac2SJaved Absar; Check the latency for instructions for both generic and cortex-r52. 6f043dac2SJaved Absar; Cortex-r52 machine model will cause the div to be sceduled before eor 7f043dac2SJaved Absar; as div takes more cycles to compute than eor. 8f043dac2SJaved Absar; 9f043dac2SJaved Absar; CHECK: ********** MI Scheduling ********** 1025528d6dSFrancis Visoiu Mistrih; CHECK: foo:%bb.0 entry 11f043dac2SJaved Absar; CHECK: EORrr 12f043dac2SJaved Absar; GENERIC: Latency : 1 13f043dac2SJaved Absar; R52_SCHED: Latency : 3 14f043dac2SJaved Absar; CHECK: MLA 15eecb353dSKristof Beyls; GENERIC: Latency : 2 16f043dac2SJaved Absar; R52_SCHED: Latency : 4 17f043dac2SJaved Absar; CHECK: SDIV 18eecb353dSKristof Beyls; GENERIC: Latency : 0 19f043dac2SJaved Absar; R52_SCHED: Latency : 8 2025528d6dSFrancis Visoiu Mistrih; CHECK: ** Final schedule for %bb.0 *** 21f043dac2SJaved Absar; GENERIC: EORrr 22f043dac2SJaved Absar; GENERIC: SDIV 23f043dac2SJaved Absar; R52_SCHED: SDIV 24f043dac2SJaved Absar; R52_SCHED: EORrr 25f043dac2SJaved Absar; CHECK: ********** INTERVALS ********** 26f043dac2SJaved Absar 27f043dac2SJaved Absartarget datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64" 28f043dac2SJaved Absartarget triple = "armv8r-arm-none-eabi" 29f043dac2SJaved Absar 30f043dac2SJaved Absar; Function Attrs: norecurse nounwind readnone 31f043dac2SJaved Absardefine hidden i32 @foo(i32 %a, i32 %b, i32 %c) local_unnamed_addr #0 { 32f043dac2SJaved Absarentry: 33f043dac2SJaved Absar %xor = xor i32 %c, %b 34f043dac2SJaved Absar %mul = mul nsw i32 %xor, %c 35f043dac2SJaved Absar %add = add nsw i32 %mul, %a 36f043dac2SJaved Absar %div = sdiv i32 %a, %b 37f043dac2SJaved Absar %sub = sub i32 %add, %div 38f043dac2SJaved Absar ret i32 %sub 39f043dac2SJaved Absar} 40