1 # RUN: llc -verify-machineinstrs -mtriple aarch64--- \
2 # RUN: -run-pass=instruction-select -mattr=+fullfp16 -global-isel %s -o - \
9 tracksRegLiveness: true
11 - { id: 0, class: fpr }
12 - { id: 1, class: fpr }
15 ; CHECK-LABEL: name: sqrt_float
16 ; CHECK: %{{[0-9]+}}:fpr32 = FSQRTSr %{{[0-9]+}}
18 %0:fpr(s32) = COPY $s0
19 %1:fpr(s32) = G_FSQRT %0
27 tracksRegLiveness: true
29 - { id: 0, class: fpr }
30 - { id: 1, class: fpr }
33 ; CHECK-LABEL: name: sqrt_double
34 ; CHECK: %{{[0-9]+}}:fpr64 = FSQRTDr %{{[0-9]+}}
36 %0:fpr(s64) = COPY $d0
37 %1:fpr(s64) = G_FSQRT %0
45 tracksRegLiveness: true
47 - { id: 0, class: fpr }
48 - { id: 1, class: fpr }
51 ; CHECK-LABEL: name: sqrt_v2f32
52 ; CHECK: %{{[0-9]+}}:fpr64 = FSQRTv2f32 %{{[0-9]+}}
54 %0:fpr(<2 x s32>) = COPY $d0
55 %1:fpr(<2 x s32>) = G_FSQRT %0
56 $d0 = COPY %1(<2 x s32>)
63 tracksRegLiveness: true
65 - { id: 0, class: fpr }
66 - { id: 1, class: fpr }
69 ; CHECK-LABEL: name: sqrt_v4f32
70 ; CHECK: %{{[0-9]+}}:fpr128 = FSQRTv4f32 %{{[0-9]+}}
72 %0:fpr(<4 x s32>) = COPY $q0
73 %1:fpr(<4 x s32>) = G_FSQRT %0
74 $q0 = COPY %1(<4 x s32>)
81 tracksRegLiveness: true
83 - { id: 0, class: fpr }
84 - { id: 1, class: fpr }
87 ; CHECK-LABEL: name: sqrt_v2f64
88 ; CHECK: %{{[0-9]+}}:fpr128 = FSQRTv2f64 %{{[0-9]+}}
90 %0:fpr(<2 x s64>) = COPY $q0
91 %1:fpr(<2 x s64>) = G_FSQRT %0
92 $q0 = COPY %1(<2 x s64>)
99 tracksRegLiveness: true
101 - { id: 0, class: fpr }
102 - { id: 1, class: fpr }
105 ; CHECK-LABEL: name: sqrt_v4f16
106 ; CHECK: %{{[0-9]+}}:fpr64 = FSQRTv4f16 %{{[0-9]+}}
108 %0:fpr(<4 x s16>) = COPY $d0
109 %1:fpr(<4 x s16>) = G_FSQRT %0
110 $d0 = COPY %1(<4 x s16>)
116 regBankSelected: true
117 tracksRegLiveness: true
119 - { id: 0, class: fpr }
120 - { id: 1, class: fpr }
123 ; CHECK-LABEL: name: sqrt_v8f16
124 ; CHECK: %{{[0-9]+}}:fpr128 = FSQRTv8f16 %{{[0-9]+}}
126 %0:fpr(<8 x s16>) = COPY $q0
127 %1:fpr(<8 x s16>) = G_FSQRT %0
128 $q0 = COPY %1(<8 x s16>)