104 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py2# RUN: llvm-mca -mtriple=amdgcn -mcpu=gfx1200 --timeline --iterations=1 --timeline-max-cycles=0 < %s | FileCheck %s3 4v_s_exp_f32 s0, s05v_s_log_f32 s0, s06v_s_rcp_f32 s1, s17v_s_rsq_f32 s1, s08v_s_sqrt_f32 s2, s19v_s_exp_f16 s3, s110v_s_log_f16 s4, s111v_s_rcp_f16 s5, s212v_s_rsq_f16 s5, s413v_s_sqrt_f16 s5, s514 15# CHECK: Iterations: 116# CHECK-NEXT: Instructions: 1017# CHECK-NEXT: Total Cycles: 4518# CHECK-NEXT: Total uOps: 1019 20# CHECK: Dispatch Width: 121# CHECK-NEXT: uOps Per Cycle: 0.2222# CHECK-NEXT: IPC: 0.2223# CHECK-NEXT: Block RThroughput: 10.024 25# CHECK: Instruction Info:26# CHECK-NEXT: [1]: #uOps27# CHECK-NEXT: [2]: Latency28# CHECK-NEXT: [3]: RThroughput29# CHECK-NEXT: [4]: MayLoad30# CHECK-NEXT: [5]: MayStore31# CHECK-NEXT: [6]: HasSideEffects (U)32 33# CHECK: [1] [2] [3] [4] [5] [6] Instructions:34# CHECK-NEXT: 1 7 1.00 U v_s_exp_f32 s0, s035# CHECK-NEXT: 1 7 1.00 U v_s_log_f32 s0, s036# CHECK-NEXT: 1 7 1.00 U v_s_rcp_f32 s1, s137# CHECK-NEXT: 1 7 1.00 U v_s_rsq_f32 s1, s038# CHECK-NEXT: 1 7 1.00 U v_s_sqrt_f32 s2, s139# CHECK-NEXT: 1 7 1.00 U v_s_exp_f16 s3, s140# CHECK-NEXT: 1 7 1.00 U v_s_log_f16 s4, s141# CHECK-NEXT: 1 7 1.00 U v_s_rcp_f16 s5, s242# CHECK-NEXT: 1 7 1.00 U v_s_rsq_f16 s5, s443# CHECK-NEXT: 1 7 1.00 U v_s_sqrt_f16 s5, s544 45# CHECK: Resources:46# CHECK-NEXT: [0] - HWBranch47# CHECK-NEXT: [1] - HWExport48# CHECK-NEXT: [2] - HWLGKM49# CHECK-NEXT: [3] - HWRC50# CHECK-NEXT: [4] - HWSALU51# CHECK-NEXT: [5] - HWVALU52# CHECK-NEXT: [6] - HWVMEM53 54# CHECK: Resource pressure per iteration:55# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6]56# CHECK-NEXT: - - - 10.00 - 10.00 -57 58# CHECK: Resource pressure by instruction:59# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] Instructions:60# CHECK-NEXT: - - - 1.00 - 1.00 - v_s_exp_f32 s0, s061# CHECK-NEXT: - - - 1.00 - 1.00 - v_s_log_f32 s0, s062# CHECK-NEXT: - - - 1.00 - 1.00 - v_s_rcp_f32 s1, s163# CHECK-NEXT: - - - 1.00 - 1.00 - v_s_rsq_f32 s1, s064# CHECK-NEXT: - - - 1.00 - 1.00 - v_s_sqrt_f32 s2, s165# CHECK-NEXT: - - - 1.00 - 1.00 - v_s_exp_f16 s3, s166# CHECK-NEXT: - - - 1.00 - 1.00 - v_s_log_f16 s4, s167# CHECK-NEXT: - - - 1.00 - 1.00 - v_s_rcp_f16 s5, s268# CHECK-NEXT: - - - 1.00 - 1.00 - v_s_rsq_f16 s5, s469# CHECK-NEXT: - - - 1.00 - 1.00 - v_s_sqrt_f16 s5, s570 71# CHECK: Timeline view:72# CHECK-NEXT: 0123456789 012345678973# CHECK-NEXT: Index 0123456789 0123456789 0123474 75# CHECK: [0,0] DeeeeeeE . . . . . . . . v_s_exp_f32 s0, s076# CHECK-NEXT: [0,1] . . DeeeeeeE. . . . . . . v_s_log_f32 s0, s077# CHECK-NEXT: [0,2] . . DeeeeeeE . . . . . . v_s_rcp_f32 s1, s178# CHECK-NEXT: [0,3] . . . DeeeeeeE . . . . . v_s_rsq_f32 s1, s079# CHECK-NEXT: [0,4] . . . . .DeeeeeeE . . . . v_s_sqrt_f32 s2, s180# CHECK-NEXT: [0,5] . . . . . DeeeeeeE. . . . v_s_exp_f16 s3, s181# CHECK-NEXT: [0,6] . . . . . DeeeeeeE . . . v_s_log_f16 s4, s182# CHECK-NEXT: [0,7] . . . . . . DeeeeeeE . . v_s_rcp_f16 s5, s283# CHECK-NEXT: [0,8] . . . . . . DeeeeeeE . . v_s_rsq_f16 s5, s484# CHECK-NEXT: [0,9] . . . . . . . . DeeeeeeE v_s_sqrt_f16 s5, s585 86# CHECK: Average Wait times (based on the timeline view):87# CHECK-NEXT: [0]: Executions88# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue89# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready90# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage91 92# CHECK: [0] [1] [2] [3]93# CHECK-NEXT: 0. 1 0.0 0.0 0.0 v_s_exp_f32 s0, s094# CHECK-NEXT: 1. 1 0.0 0.0 0.0 v_s_log_f32 s0, s095# CHECK-NEXT: 2. 1 0.0 0.0 0.0 v_s_rcp_f32 s1, s196# CHECK-NEXT: 3. 1 0.0 0.0 0.0 v_s_rsq_f32 s1, s097# CHECK-NEXT: 4. 1 0.0 0.0 0.0 v_s_sqrt_f32 s2, s198# CHECK-NEXT: 5. 1 0.0 0.0 0.0 v_s_exp_f16 s3, s199# CHECK-NEXT: 6. 1 0.0 0.0 0.0 v_s_log_f16 s4, s1100# CHECK-NEXT: 7. 1 0.0 0.0 0.0 v_s_rcp_f16 s5, s2101# CHECK-NEXT: 8. 1 0.0 0.0 0.0 v_s_rsq_f16 s5, s4102# CHECK-NEXT: 9. 1 0.0 0.0 0.0 v_s_sqrt_f16 s5, s5103# CHECK-NEXT: 1 0.0 0.0 0.0 <total>104