File: postselectopt-constrain-new-regop.mir

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (83 lines) | stat: -rw-r--r-- 3,216 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple aarch64 -run-pass=aarch64-post-select-optimize -verify-machineinstrs %s -o - | FileCheck %s
---
name:            pluto
alignment:       4
legalized:       true
regBankSelected: true
selected:        true
tracksRegLiveness: true
liveins:
  - { reg: '$x0' }
  - { reg: '$w1' }
  - { reg: '$x2' }
frameInfo:
  maxAlignment:    1
  maxCallFrameSize: 0
body:             |
  ; CHECK-LABEL: name: pluto
  ; CHECK: bb.0:
  ; CHECK:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
  ; CHECK:   liveins: $w1, $x0, $x2
  ; CHECK:   [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
  ; CHECK:   [[COPY1:%[0-9]+]]:gpr32sp = COPY $w1
  ; CHECK:   [[COPY2:%[0-9]+]]:gpr64sp = COPY $x2
  ; CHECK:   [[DEF:%[0-9]+]]:gpr32 = IMPLICIT_DEF
  ; CHECK:   [[COPY3:%[0-9]+]]:fpr32 = COPY [[DEF]]
  ; CHECK:   [[MOVi32imm:%[0-9]+]]:gpr32 = MOVi32imm 872415232
  ; CHECK:   [[COPY4:%[0-9]+]]:fpr32 = COPY [[MOVi32imm]]
  ; CHECK:   FCMPSrr [[COPY3]], [[COPY4]], implicit-def $nzcv, implicit $fpcr
  ; CHECK:   [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr $wzr, $wzr, 13, implicit $nzcv
  ; CHECK:   [[SUBWri:%[0-9]+]]:gpr32common = SUBWri [[COPY1]], 1, 0
  ; CHECK:   [[SUBREG_TO_REG:%[0-9]+]]:gpr64 = SUBREG_TO_REG 0, [[SUBWri]], %subreg.sub_32
  ; CHECK:   [[COPY5:%[0-9]+]]:fpr32 = COPY [[DEF]]
  ; CHECK:   FCMPSrr [[COPY5]], [[COPY4]], implicit-def $nzcv, implicit $fpcr
  ; CHECK:   [[CSINCWr1:%[0-9]+]]:gpr32 = CSINCWr $wzr, $wzr, 12, implicit $nzcv
  ; CHECK:   [[EORWrr:%[0-9]+]]:gpr32 = EORWrr [[CSINCWr]], [[CSINCWr1]]
  ; CHECK:   TBNZW [[EORWrr]], 0, %bb.2
  ; CHECK:   B %bb.1
  ; CHECK: bb.1:
  ; CHECK:   successors: %bb.2(0x80000000)
  ; CHECK:   [[UBFMXri:%[0-9]+]]:gpr64 = UBFMXri [[SUBREG_TO_REG]], 60, 59
  ; CHECK:   [[LDRSroX:%[0-9]+]]:fpr32 = LDRSroX [[COPY]], [[UBFMXri]], 0, 0 :: (load (s32))
  ; CHECK:   [[COPY6:%[0-9]+]]:fpr32 = COPY [[DEF]]
  ; CHECK:   [[FMULSrr:%[0-9]+]]:fpr32 = FMULSrr [[COPY6]], [[LDRSroX]], implicit $fpcr
  ; CHECK:   [[COPY7:%[0-9]+]]:fpr32 = COPY [[DEF]]
  ; CHECK:   [[FADDSrr:%[0-9]+]]:fpr32 = FADDSrr [[FMULSrr]], [[COPY7]], implicit $fpcr
  ; CHECK:   STRSui [[FADDSrr]], [[COPY2]], 0 :: (store (s32))
  ; CHECK: bb.2:
  ; CHECK:   RET_ReallyLR
  bb.1:
    liveins: $w1, $x0, $x2

    %0:gpr64sp = COPY $x0
    %1:gpr32sp = COPY $w1
    %2:gpr64sp = COPY $x2
    %3:gpr32 = IMPLICIT_DEF
    %29:fpr32 = COPY %3
    %33:gpr32 = MOVi32imm 872415232
    %4:fpr32 = COPY %33
    FCMPSrr %29, %4, implicit-def $nzcv, implicit $fpcr
    %28:gpr32 = CSINCWr $wzr, $wzr, 13, implicit $nzcv
    %7:gpr32 = SUBSWri %1, 1, 0, implicit-def $nzcv
    %8:gpr64 = SUBREG_TO_REG 0, %7, %subreg.sub_32
    %30:fpr32 = COPY %3
    FCMPSrr %30, %4, implicit-def $nzcv, implicit $fpcr
    %27:gpr32 = CSINCWr $wzr, $wzr, 12, implicit $nzcv
    %26:gpr32 = EORWrr %28, %27
    TBNZW %26, 0, %bb.3
    B %bb.2

  bb.2:
    %12:gpr64 = UBFMXri %8, 60, 59
    %15:fpr32 = LDRSroX %0, %12, 0, 0 :: (load (s32))
    %31:fpr32 = COPY %3
    %16:fpr32 = FMULSrr %31, %15, implicit $fpcr
    %32:fpr32 = COPY %3
    %17:fpr32 = FADDSrr %16, %32, implicit $fpcr
    STRSui %17, %2, 0 :: (store (s32))

  bb.3:
    RET_ReallyLR

...