definitions: []
tests:
- file-name: fldai
isa:
title: Load accumulator from immediate
description: >
Load immediate into accumulator. For short formats immediate is sign extended to operand size.
exceptions:
- x_none
verification:
- none
commands:
- file-name: pos
isa:
instructions:
- sig: fldai imm:f32
acc: out:f32
prefix: f32
format: [pref_op_imm_32]
check-type: no-check
code-template: |
# test - check binary representation of FP literals - positive
fldai %s
fmovi v0, %s
fcmpg v0
description: Check fldai with various positive values (float and HEX literal).
tags: ['tsan', 'irtoc_ignore']
cases:
- values:
- '0.0'
- '0x0'
- values:
- '0.1'
- '0x3dcccccd'
- values:
- '1.0'
- '0x3f800000'
- values:
- '12345678.90987654'
- '0x4b3c614f'
- values:
- '3.141592653589793'
- '0x40490fdb'
- values:
- '3.1415e3'
- '0x45445800'
- values:
- '1.7976931e308'
- '0x7f800000'
- values:
- '4.9e-324'
- '0x0'
- values:
- '0x12345678'
- '5.6904566e-28'
- values:
- '9223372036854775807'
- '0x5f000000'
- values:
- '0.55'
- '0x3f0ccccd'
- file-name: neg
isa:
instructions:
- sig: fldai imm:f32
acc: out:f32
prefix: f32
format: [pref_op_imm_32]
check-type: no-check
tags: ['irtoc_ignore']
code-template: |
# test - check binary representation of FP literals - negative
fldai %s
fmovi v0, %s
fcmpg v0
description: Check fldai with various negative values (float and HEX literal).
cases:
- values:
- '-0'
- '0x80000000'
- values:
- '-1'
- '0xbf800000'
- values:
- '-0.0'
- '0x80000000'
- values:
- '-0.1'
- '0xbdcccccd'
- values:
- '-1.0'
- '0xbf800000'
- values:
- '-12345678.90987654'
- '0xcb3c614f'
- values:
- '-3.141592653589793'
- '0xc0490fdb'
- values:
- '-1.4012985e-45'
- '0x80000001'
- values:
- '-3.4028235e+38'
- '0xff7fffff'
- values:
- '-0.55'
- '0xbf0ccccd'
- file-name: err
isa:
instructions:
- sig: fldai imm:f32
acc: out:f32
prefix: f32
format: [pref_op_imm_32]
code-template: |
#
fldai %s
check-type: none
runner-options: [compile-failure]
description: Check fldai with incorrect literal.
cases:
- values:
- '1e'
- values:
- 'e1'
ignore: true
bugid: ['932']
- values:
- '-1e'
- values:
- '-e1'
ignore: true
bugid: ['932']
- values:
- '1e1e1'
- values:
- '-1e1e1'
- file-name: range
isa:
instructions:
- sig: fldai imm:f32
acc: out:f32
prefix: f32
format: [pref_op_imm_32]
check-type: no-check
tags: ['irtoc_ignore']
code-template: |
# test - check binary representation of FP literals - positive
fldai %s
fmovi v0, %s
fcmpg v0
description: Check fldai with out-of-range positive/negative values.
cases:
- values:
- '+1.4e-45'
- '0x00000001'
- values:
- '+1.4e-46'
- '0x00000000'
- values:
- '-1.4e-45'
- '0x80000001'
- values:
- '-1.4e-46'
- '0x80000000'
- values:
- '3.4028235e38'
- '0x7f7fffff'
bugid: ['966', '965']
- values:
- '3.4028235e39'
- '0x7f800000'
bugid: ['966', '965']
- values:
- '-3.4028235e38'
- '0xff7fffff'
bugid: ['966', '965']
- values:
- '-3.4028235e39'
- '0xff800000'
bugid: ['966', '965']