xref: /aosp_15_r20/external/llvm/test/Assembler/2002-04-07-HexFloatConstants.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; This testcase checks to make sure that the assembler can handle floating
2*9880d681SAndroid Build Coastguard Worker; point constants in IEEE hex format. This also checks that the disassembler,
3*9880d681SAndroid Build Coastguard Worker; when presented with a FP constant that cannot be represented exactly in
4*9880d681SAndroid Build Coastguard Worker; exponential form, outputs it correctly in hex format.  This is a distillation
5*9880d681SAndroid Build Coastguard Worker; of the bug that was causing the Olden Health benchmark to output incorrect
6*9880d681SAndroid Build Coastguard Worker; results!
7*9880d681SAndroid Build Coastguard Worker;
8*9880d681SAndroid Build Coastguard Worker; RUN: opt -constprop -S > %t.1 < %s
9*9880d681SAndroid Build Coastguard Worker; RUN: llvm-as < %s | llvm-dis | llvm-as | opt -constprop | \
10*9880d681SAndroid Build Coastguard Worker; RUN: llvm-dis > %t.2
11*9880d681SAndroid Build Coastguard Worker; RUN: diff %t.1 %t.2
12*9880d681SAndroid Build Coastguard Worker; RUN: verify-uselistorder %s
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Workerdefine double @test() {
15*9880d681SAndroid Build Coastguard Worker        %tmp = fmul double 7.200000e+101, 0x427F4000             ; <double> [#uses=1]
16*9880d681SAndroid Build Coastguard Worker        ret double %tmp
17*9880d681SAndroid Build Coastguard Worker}
18