Created
April 8, 2023 20:19
-
-
Save ARISTODE/bf10ae7728f9a6731cf52b97dd82ca90 to your computer and use it in GitHub Desktop.
Alias.ll
This file has been truncated, but you can view the full file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ; ModuleID = 'alias.bc' | |
| source_filename = "llvm-link" | |
| target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" | |
| target triple = "x86_64-pc-linux-gnu" | |
| %struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i64, i16, i8, [1 x i8], i8*, i64, %struct._IO_codecvt*, %struct._IO_wide_data*, %struct._IO_FILE*, i8*, i64, i32, [20 x i8] } | |
| %struct._IO_marker = type opaque | |
| %struct._IO_codecvt = type opaque | |
| %struct._IO_wide_data = type opaque | |
| %struct.KlvTag_t = type { i8, i32, i8*, %struct.KlvTag_t* } | |
| %struct.KlvTagInfo_t = type { [64 x i8], i32, double, double } | |
| %struct.mg_fs = type { i32 (i8*, i64*, i64*)*, void (i8*, void (i8*, i8*)*, i8*)*, i8* (i8*, i32)*, void (i8*)*, i64 (i8*, i8*, i64)*, i64 (i8*, i8*, i64)*, i64 (i8*, i64)*, i1 (i8*, i8*)*, i1 (i8*)*, i1 (i8*)* } | |
| %struct.mg_str = type { i8*, i64 } | |
| %struct.sockaddr_in = type { i16, i16, %struct.in_addr, [8 x i8] } | |
| %struct.in_addr = type { i32 } | |
| %struct.TrilliumPkt_t = type { i8, i8, i8, i8, [142 x i8], %struct.TrilliumPktInfo_t } | |
| %struct.TrilliumPktInfo_t = type { i16, i16, i16, i16 } | |
| %struct.AVFormatContext = type { %struct.AVClass*, %struct.AVInputFormat*, %struct.AVOutputFormat*, i8*, %struct.AVIOContext*, i32, i32, %struct.AVStream**, [1024 x i8], i8*, i64, i64, i64, i32, i32, i32, i64, i64, i8*, i32, i32, %struct.AVProgram**, i32, i32, i32, i32, i32, i32, %struct.AVChapter**, %struct.AVDictionary*, i64, i32, i32, %struct.AVIOInterruptCB, i32, i64, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, i32, i32, i32, i32, i32, i8*, i8*, %struct.AVFormatInternal*, i32, %struct.AVCodec*, %struct.AVCodec*, %struct.AVCodec*, %struct.AVCodec*, i32, i8*, i32 (%struct.AVFormatContext*, i32, i8*, i64)*, i64, i8*, i32, i32 (%struct.AVFormatContext*, %struct.AVIOContext**, i8*, i32, %struct.AVIOInterruptCB*, %struct.AVDictionary**)*, i8*, i32 (%struct.AVFormatContext*, %struct.AVIOContext**, i8*, i32, %struct.AVDictionary**)*, void (%struct.AVFormatContext*, %struct.AVIOContext*)*, i8*, i32, i32 } | |
| %struct.AVClass = type { i8*, i8* (i8*)*, %struct.AVOption*, i32, i32, i32, i8* (i8*, i8*)*, %struct.AVClass* (%struct.AVClass*)*, i32, i32 (i8*)*, i32 (%struct.AVOptionRanges**, i8*, i8*, i32)* } | |
| %struct.AVOption = type { i8*, i8*, i32, i32, %union.anon.44, double, double, i32, i8* } | |
| %union.anon.44 = type { i64 } | |
| %struct.AVOptionRanges = type { %struct.AVOptionRange**, i32, i32 } | |
| %struct.AVOptionRange = type { i8*, double, double, double, double, i32 } | |
| %struct.AVInputFormat = type { i8*, i8*, i32, i8*, %struct.AVCodecTag**, %struct.AVClass*, i8*, %struct.AVInputFormat*, i32, i32, i32 (%struct.AVProbeData*)*, i32 (%struct.AVFormatContext*)*, i32 (%struct.AVFormatContext*, %struct.AVPacket*)*, i32 (%struct.AVFormatContext*)*, i32 (%struct.AVFormatContext*, i32, i64, i32)*, i64 (%struct.AVFormatContext*, i32, i64*, i64)*, i32 (%struct.AVFormatContext*)*, i32 (%struct.AVFormatContext*)*, i32 (%struct.AVFormatContext*, i32, i64, i64, i64, i32)*, i32 (%struct.AVFormatContext*, %struct.AVDeviceInfoList*)*, i32 (%struct.AVFormatContext*, %struct.AVDeviceCapabilitiesQuery*)*, i32 (%struct.AVFormatContext*, %struct.AVDeviceCapabilitiesQuery*)* } | |
| %struct.AVCodecTag = type opaque | |
| %struct.AVProbeData = type { i8*, i8*, i32, i8* } | |
| %struct.AVPacket = type { %struct.AVBufferRef*, i64, i64, i8*, i32, i32, i32, %struct.AVPacketSideData*, i32, i64, i64, i64 } | |
| %struct.AVBufferRef = type { %struct.AVBuffer*, i8*, i32 } | |
| %struct.AVBuffer = type opaque | |
| %struct.AVPacketSideData = type { i8*, i32, i32 } | |
| %struct.AVDeviceInfoList = type opaque | |
| %struct.AVDeviceCapabilitiesQuery = type opaque | |
| %struct.AVOutputFormat = type { i8*, i8*, i8*, i8*, i32, i32, i32, i32, %struct.AVCodecTag**, %struct.AVClass*, %struct.AVOutputFormat*, i32, i32 (%struct.AVFormatContext*)*, i32 (%struct.AVFormatContext*, %struct.AVPacket*)*, i32 (%struct.AVFormatContext*)*, i32 (%struct.AVFormatContext*, %struct.AVPacket*, %struct.AVPacket*, i32)*, i32 (i32, i32)*, void (%struct.AVFormatContext*, i32, i64*, i64*)*, i32 (%struct.AVFormatContext*, i32, i8*, i64)*, i32 (%struct.AVFormatContext*, i32, %struct.AVFrame**, i32)*, i32 (%struct.AVFormatContext*, %struct.AVDeviceInfoList*)*, i32 (%struct.AVFormatContext*, %struct.AVDeviceCapabilitiesQuery*)*, i32 (%struct.AVFormatContext*, %struct.AVDeviceCapabilitiesQuery*)*, i32, i32 (%struct.AVFormatContext*)*, void (%struct.AVFormatContext*)*, i32 (%struct.AVFormatContext*, %struct.AVPacket*)* } | |
| %struct.AVFrame = type { [8 x i8*], [8 x i32], i8**, i32, i32, i32, i32, i32, i32, %struct.AVRational, i64, i64, i64, i32, i32, i32, i8*, [8 x i64], i32, i32, i32, i32, i64, i32, i64, [8 x %struct.AVBufferRef*], %struct.AVBufferRef**, i32, %struct.AVFrameSideData**, i32, i32, i32, i32, i32, i32, i32, i64, i64, i64, %struct.AVDictionary*, i32, i32, i32, i8*, i32, i32, %struct.AVBufferRef*, %struct.AVBufferRef*, %struct.AVBufferRef*, i64, i64, i64, i64, %struct.AVBufferRef* } | |
| %struct.AVRational = type { i32, i32 } | |
| %struct.AVFrameSideData = type { i32, i8*, i32, %struct.AVDictionary*, %struct.AVBufferRef* } | |
| %struct.AVIOContext = type { %struct.AVClass*, i8*, i32, i8*, i8*, i8*, i32 (i8*, i8*, i32)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i64, i32, i32, i32, i64, i8*, i64 (i64, i8*, i32)*, i32, i32 (i8*, i32)*, i64 (i8*, i32, i64, i32)*, i32, i64, i32, i64, i32, i32, i32, i32, i8*, i8*, i32 (i8*, i8*, i32, i32, i64)*, i32, i32, i64, i32 (i8*)*, i64, i8*, i32 } | |
| %struct.AVStream = type { i32, i32, %struct.AVCodecContext*, i8*, %struct.AVRational, i64, i64, i64, i32, i32, %struct.AVRational, %struct.AVDictionary*, %struct.AVRational, %struct.AVPacket, %struct.AVPacketSideData*, i32, i32, %struct.AVRational, i8*, %struct.AVCodecParameters*, %struct.anon.45*, i32, i64, i64, i64, i32, i32, i32, i32, %struct.AVCodecParserContext*, %struct.AVPacketList*, %struct.AVProbeData, [17 x i64], %struct.AVIndexEntry*, i32, i32, i32, i32, i32, i32, i64, i64, i32, i32, i32, i64, i64, i64, i32, i64, i64, i32, i32, [17 x i64], [17 x i8], i64, i8, i8, i32, %struct.AVRational, %struct.AVStreamInternal* } | |
| %struct.AVCodecContext = type { %struct.AVClass*, i32, i32, %struct.AVCodec*, i32, i32, i8*, %struct.AVCodecInternal*, i8*, i64, i32, i32, i32, i32, i32, i8*, i32, %struct.AVRational, i32, i32, i32, i32, i32, i32, i32, i32, void (%struct.AVCodecContext*, %struct.AVFrame*, i32*, i32, i32, i32)*, i32 (%struct.AVCodecContext*, i32*)*, i32, float, i32, float, i32, i32, float, float, float, float, float, float, float, i32, i32, i32*, %struct.AVRational, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i16*, i16*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, i64, i32, i32, i32 (%struct.AVCodecContext*, %struct.AVFrame*, i32)*, i32, float, float, i32, i32, i32, i32, i32, %struct.RcOverride*, i64, i64, float, float, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, void (%struct.AVCodecContext*, i8*, i32, i32)*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8*, i8*, i32, i32, i32, i32, i32, i64, %struct.AVHWAccel*, i8*, [8 x i64], i32, i32, i32, i32, i32, %struct.AVFrame*, i32, i32, i32, i32, i32 (%struct.AVCodecContext*, i32 (%struct.AVCodecContext*, i8*)*, i8*, i32*, i32, i32)*, i32 (%struct.AVCodecContext*, i32 (%struct.AVCodecContext*, i8*, i32, i32)*, i8*, i32*, i32)*, i32, i32, i32, i32, i32, i32, i8*, i32, i64, i32, i32, %struct.AVRational, i32, %struct.AVRational, %struct.AVCodecDescriptor*, i64, i64, i64, i64, i8*, i32, i32, i32, i32, i16*, i8*, i8*, i32, %struct.AVPacketSideData*, i32, %struct.AVBufferRef*, i32, i32, i64, %struct.AVBufferRef*, i32, i32, i32, i32 } | |
| %struct.AVCodecInternal = type opaque | |
| %struct.RcOverride = type { i32, i32, i32, float } | |
| %struct.AVHWAccel = type { i8*, i32, i32, i32, i32, i32 (%struct.AVCodecContext*, %struct.AVFrame*)*, i32 (%struct.AVCodecContext*, i8*, i32)*, i32 (%struct.AVCodecContext*, i32, i8*, i32)*, i32 (%struct.AVCodecContext*, i8*, i32)*, i32 (%struct.AVCodecContext*)*, i32, void (%struct.MpegEncContext*)*, i32 (%struct.AVCodecContext*)*, i32 (%struct.AVCodecContext*)*, i32, i32, i32 (%struct.AVCodecContext*, %struct.AVBufferRef*)* } | |
| %struct.MpegEncContext = type opaque | |
| %struct.AVCodecDescriptor = type { i32, i32, i8*, i8*, i32, i8**, %struct.AVProfile* } | |
| %struct.AVProfile = type { i32, i8* } | |
| %struct.AVCodecParameters = type { i32, i32, i32, i8*, i32, i32, i64, i32, i32, i32, i32, i32, i32, %struct.AVRational, i32, i32, i32, i32, i32, i32, i32, i64, i32, i32, i32, i32, i32, i32, i32 } | |
| %struct.anon.45 = type { i64, i64, i32, i64, [2 x [399 x double]]*, i64, i64, i32, i32, i64, i64, i32, i64, i32 } | |
| %struct.AVCodecParserContext = type { i8*, %struct.AVCodecParser*, i64, i64, i64, i32, i32, i64, i64, i64, i64, i32, i32, [4 x i64], [4 x i64], [4 x i64], i32, i64, [4 x i64], i32, i64, i32, i32, i32, [4 x i64], i64, i64, i32, i32, i32, i32, i32, i32, i32, i32, i32 } | |
| %struct.AVCodecParser = type { [5 x i32], i32, i32 (%struct.AVCodecParserContext*)*, i32 (%struct.AVCodecParserContext*, %struct.AVCodecContext*, i8**, i32*, i8*, i32)*, void (%struct.AVCodecParserContext*)*, i32 (%struct.AVCodecContext*, i8*, i32)*, %struct.AVCodecParser* } | |
| %struct.AVPacketList = type { %struct.AVPacket, %struct.AVPacketList* } | |
| %struct.AVIndexEntry = type { i64, i64, i32, i32 } | |
| %struct.AVStreamInternal = type opaque | |
| %struct.AVProgram = type { i32, i32, i32, i32*, i32, %struct.AVDictionary*, i32, i32, i32, i32, i64, i64, i64, i32 } | |
| %struct.AVChapter = type { i32, %struct.AVRational, i64, i64, %struct.AVDictionary* } | |
| %struct.AVDictionary = type opaque | |
| %struct.AVIOInterruptCB = type { i32 (i8*)*, i8* } | |
| %struct.AVFormatInternal = type opaque | |
| %struct.AVCodec = type { i8*, i8*, i32, i32, i32, %struct.AVRational*, i32*, i32*, i32*, i64*, i8, %struct.AVClass*, %struct.AVProfile*, i8*, i32, %struct.AVCodec*, i32 (%struct.AVCodecContext*)*, i32 (%struct.AVCodecContext*, %struct.AVCodecContext*)*, %struct.AVCodecDefault*, void (%struct.AVCodec*)*, i32 (%struct.AVCodecContext*)*, i32 (%struct.AVCodecContext*, i8*, i32, %struct.AVSubtitle*)*, i32 (%struct.AVCodecContext*, %struct.AVPacket*, %struct.AVFrame*, i32*)*, i32 (%struct.AVCodecContext*, i8*, i32*, %struct.AVPacket*)*, i32 (%struct.AVCodecContext*)*, i32 (%struct.AVCodecContext*, %struct.AVFrame*)*, i32 (%struct.AVCodecContext*, %struct.AVPacket*)*, i32 (%struct.AVCodecContext*, %struct.AVFrame*)*, void (%struct.AVCodecContext*)*, i32, i8*, %struct.AVCodecHWConfigInternal** } | |
| %struct.AVCodecDefault = type opaque | |
| %struct.AVSubtitle = type { i16, i32, i32, i32, %struct.AVSubtitleRect**, i64 } | |
| %struct.AVSubtitleRect = type { i32, i32, i32, i32, i32, %struct.AVPicture, [4 x i8*], [4 x i32], i32, i8*, i8*, i32 } | |
| %struct.AVPicture = type { [8 x i8*], [8 x i32] } | |
| %struct.AVCodecHWConfigInternal = type opaque | |
| %struct.llat_st = type { %union.pthread_mutex_t, double, double, double, double, i8 } | |
| %union.pthread_mutex_t = type { %struct.__pthread_mutex_s } | |
| %struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list } | |
| %struct.__pthread_internal_list = type { %struct.__pthread_internal_list*, %struct.__pthread_internal_list* } | |
| %struct.framebuf_st = type { %union.pthread_mutex_t, i8, i64, [64000 x i8] } | |
| %struct.mg_connection = type { %struct.mg_connection*, %struct.mg_mgr*, %struct.mg_addr, %struct.mg_addr, i8*, i64, %struct.mg_iobuf, %struct.mg_iobuf, void (%struct.mg_connection*, i32, i8*, i8*)*, i8*, void (%struct.mg_connection*, i32, i8*, i8*)*, i8*, [50 x i8], i8*, i16 } | |
| %struct.mg_mgr = type { %struct.mg_connection*, %struct.mg_dns, %struct.mg_dns, i32, i8, i64, i8*, i16, i8*, %struct.mg_timer*, i8*, i64 } | |
| %struct.mg_dns = type { i8*, %struct.mg_connection* } | |
| %struct.mg_timer = type { i64, i64, i64, i32, void (i8*)*, i8*, %struct.mg_timer* } | |
| %struct.mg_addr = type { i16, i32, [16 x i8], i8 } | |
| %struct.mg_iobuf = type { i8*, i64, i64 } | |
| %struct.mg_http_message = type { %struct.mg_str, %struct.mg_str, %struct.mg_str, %struct.mg_str, [40 x %struct.mg_http_header], %struct.mg_str, %struct.mg_str, %struct.mg_str, %struct.mg_str } | |
| %struct.mg_http_header = type { %struct.mg_str, %struct.mg_str } | |
| %struct.mg_tls_opts = type { i8*, i8*, i8*, i8*, i8*, %struct.mg_str, %struct.mg_fs* } | |
| %struct.mg_http_serve_opts = type { i8*, i8*, i8*, i8*, i8*, %struct.mg_fs* } | |
| %union.anon = type { float } | |
| %struct.Vector_t = type { i32, double* } | |
| %struct.Matrix_t = type { i32, i32, double* } | |
| %struct.Vectorf_t = type { i32, float* } | |
| %struct.Matrixf_t = type { i32, i32, float* } | |
| %struct.llaTrig_t = type { double, double, double, double } | |
| %struct.GeolocateTelemetry_t = type { %struct.GeolocateTelemetryCore_t, i16, i8, i8, i8, i8, i8, %struct.llaTrig_t, [3 x double], [3 x float], [3 x float], [9 x float], %struct.Matrixf_t, [4 x float], [3 x float], [9 x float], %struct.Matrixf_t, float, [3 x double], [3 x double] } | |
| %struct.GeolocateTelemetryCore_t = type { i32, i32, i16, double, double, double, double, [3 x float], [4 x float], float, float, float, float, [3 x float], i16, i16, i32, float, float, i8, i8, [2 x float], float, float, [2 x float], i32, i8, float, float, i32, [4 x float], float } | |
| %struct.GeolocateBuffer_t = type { [100 x %struct.GeolocateTelemetry_t], i32, i32 } | |
| %struct.GpsData_t = type { i8, i8, i8, float, double, double, double, [3 x float], float, float, float, float, i32, i16, float, i32, i8, i8, float, [3 x float], [3 x float], [3 x double], [3 x float], [3 x float], [3 x float], i16, i8, i8, i8, i8, i8, i8, float, float, i8 } | |
| %struct.__va_list_tag = type { i32, i32, i8*, i8* } | |
| %union.anon.1 = type { double } | |
| %struct.stat = type { i64, i64, i64, i32, i32, i32, i32, i64, i64, i64, i64, %struct.timespec, %struct.timespec, %struct.timespec, [3 x i64] } | |
| %struct.timespec = type { i64, i64 } | |
| %struct.dirent = type { i64, i64, i16, i8, [256 x i8] } | |
| %struct.__dirstream = type opaque | |
| %struct.dns_data = type { %struct.dns_data*, %struct.mg_connection*, i64, i16 } | |
| %struct.mg_dns_message = type { i16, i8, %struct.mg_addr, [256 x i8] } | |
| %struct.mg_dns_header = type { i16, i16, i16, i16, i16, i16 } | |
| %struct.url = type { i64, i64, i64, i64, i64, i64, i64 } | |
| %union.usa = type { %struct.sockaddr_in } | |
| %union.__SOCKADDR_ARG = type { %struct.sockaddr* } | |
| %struct.sockaddr = type { i16, [14 x i8] } | |
| %struct.anon = type { %struct.mg_dns_header, [256 x i8] } | |
| %struct.mg_fd = type { i8*, %struct.mg_fs* } | |
| %struct.mg_http_part = type { %struct.mg_str, %struct.mg_str, %struct.mg_str } | |
| %struct.printdirentrydata = type { %struct.mg_connection*, %struct.mg_http_message*, %struct.mg_http_serve_opts*, i8* } | |
| %struct.mg_md5_ctx = type { [4 x i32], [2 x i32], [64 x i8] } | |
| %struct.mg_mqtt_opts = type { %struct.mg_str, %struct.mg_str, %struct.mg_str, %struct.mg_str, %struct.mg_str, i8, i8, i8, i16 } | |
| %struct.mg_mqtt_message = type { %struct.mg_str, %struct.mg_str, %struct.mg_str, i16, i8, i8, i8 } | |
| %struct.mg_tls = type { i8*, %struct.mbedtls_x509_crt, %struct.mbedtls_x509_crt, %struct.mbedtls_ssl_context, %struct.mbedtls_ssl_config, %struct.mbedtls_pk_context } | |
| %struct.mbedtls_x509_crt = type { %struct.mbedtls_asn1_buf, %struct.mbedtls_asn1_buf, i32, %struct.mbedtls_asn1_buf, %struct.mbedtls_asn1_buf, %struct.mbedtls_asn1_buf, %struct.mbedtls_asn1_buf, %struct.mbedtls_asn1_named_data, %struct.mbedtls_asn1_named_data, %struct.mbedtls_x509_time, %struct.mbedtls_x509_time, %struct.mbedtls_pk_context, %struct.mbedtls_asn1_buf, %struct.mbedtls_asn1_buf, %struct.mbedtls_asn1_buf, %struct.mbedtls_asn1_sequence, i32, i32, i32, i32, %struct.mbedtls_asn1_sequence, i8, %struct.mbedtls_asn1_buf, i32, i32, i8*, %struct.mbedtls_x509_crt* } | |
| %struct.mbedtls_asn1_named_data = type { %struct.mbedtls_asn1_buf, %struct.mbedtls_asn1_buf, %struct.mbedtls_asn1_named_data*, i8 } | |
| %struct.mbedtls_x509_time = type { i32, i32, i32, i32, i32, i32 } | |
| %struct.mbedtls_asn1_sequence = type { %struct.mbedtls_asn1_buf, %struct.mbedtls_asn1_sequence* } | |
| %struct.mbedtls_asn1_buf = type { i32, i64, i8* } | |
| %struct.mbedtls_ssl_context = type { %struct.mbedtls_ssl_config*, i32, i32, i32, i32, i32, i32, i32 (i8*, i8*, i64)*, i32 (i8*, i8*, i64)*, i32 (i8*, i8*, i64, i32)*, i8*, %struct.mbedtls_ssl_session*, %struct.mbedtls_ssl_session*, %struct.mbedtls_ssl_session*, %struct.mbedtls_ssl_session*, %struct.mbedtls_ssl_handshake_params*, %struct.mbedtls_ssl_transform*, %struct.mbedtls_ssl_transform*, %struct.mbedtls_ssl_transform*, %struct.mbedtls_ssl_transform*, i8*, void (i8*, i32, i32)*, i32 (i8*)*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i32, i64, i64, i16, i64, i64, i64, i64, i32, i32, i8, i8*, i8*, i8*, i8*, i8*, i8*, i32, i64, i64, [8 x i8], i16, i8, i32, i8*, i8*, i8*, i64, i32, i64, [12 x i8], [12 x i8] } | |
| %struct.mbedtls_ssl_session = type { i64, i32, i32, i64, [32 x i8], [48 x i8], %struct.mbedtls_x509_crt*, i32, i8*, i64, i32, i8, i32, i32 } | |
| %struct.mbedtls_ssl_handshake_params = type opaque | |
| %struct.mbedtls_ssl_transform = type opaque | |
| %struct.mbedtls_ssl_config = type { [4 x i32*], void (i8*, i32, i8*, i32, i8*)*, i8*, i32 (i8*, i8*, i64)*, i8*, i32 (i8*, %struct.mbedtls_ssl_session*)*, i32 (i8*, %struct.mbedtls_ssl_session*)*, i8*, i32 (i8*, %struct.mbedtls_ssl_context*, i8*, i64)*, i8*, i32 (i8*, %struct.mbedtls_x509_crt*, i32, i32*)*, i8*, i32 (i8*, %struct.mbedtls_ssl_context*, i8*, i64)*, i8*, i32 (i8*, i8**, i8*, i8*, i64)*, i32 (i8*, i8*, i64, i8*, i64)*, i8*, i32 (i8*, %struct.mbedtls_ssl_session*, i8*, i8*, i64*, i32*)*, i32 (i8*, %struct.mbedtls_ssl_session*, i8*, i64)*, i8*, i32 (i8*, i8*, i8*, i64, i64, i64)*, i8*, %struct.mbedtls_x509_crt_profile*, %struct.mbedtls_ssl_key_cert*, %struct.mbedtls_x509_crt*, %struct.mbedtls_x509_crl*, i32*, i32*, %struct.mbedtls_mpi, %struct.mbedtls_mpi, i8*, i64, i8*, i64, i8**, i32, i32, i32, i32, [8 x i8], i32, i32, i8, i8, i8, i8, i24 } | |
| %struct.mbedtls_x509_crt_profile = type { i32, i32, i32, i32 } | |
| %struct.mbedtls_ssl_key_cert = type opaque | |
| %struct.mbedtls_x509_crl = type { %struct.mbedtls_asn1_buf, %struct.mbedtls_asn1_buf, i32, %struct.mbedtls_asn1_buf, %struct.mbedtls_asn1_buf, %struct.mbedtls_asn1_named_data, %struct.mbedtls_x509_time, %struct.mbedtls_x509_time, %struct.mbedtls_x509_crl_entry, %struct.mbedtls_asn1_buf, %struct.mbedtls_asn1_buf, %struct.mbedtls_asn1_buf, i32, i32, i8*, %struct.mbedtls_x509_crl* } | |
| %struct.mbedtls_x509_crl_entry = type { %struct.mbedtls_asn1_buf, %struct.mbedtls_asn1_buf, %struct.mbedtls_x509_time, %struct.mbedtls_asn1_buf, %struct.mbedtls_x509_crl_entry* } | |
| %struct.mbedtls_mpi = type { i32, i64, i64* } | |
| %struct.mbedtls_pk_context = type { %struct.mbedtls_pk_info_t*, i8* } | |
| %struct.mbedtls_pk_info_t = type opaque | |
| %struct.pollfd = type { i32, i16, i16 } | |
| %struct.mg_sha1_ctx = type { [5 x i32], [2 x i32], [64 x i8] } | |
| %union.char64long16 = type { [16 x i32] } | |
| %struct.ws_msg = type { i8, i64, i64 } | |
| %struct.mg_ws_message = type { %struct.mg_str, i8 } | |
| %struct.termios = type { i32, i32, i32, i32, i8, [32 x i8], i32, i32 } | |
| %struct.Date_t = type { i16, [2 x i8] } | |
| %struct.OrionCmd_t = type { [2 x float], i32, i8, float } | |
| %struct.OrionLaserState_t = type { i32, i24, i16 } | |
| %struct.OrionPerformance_t = type { [2 x float], [2 x float], [2 x float], [2 x float], [2 x float] } | |
| %struct.OrionDiagnostics_t = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } | |
| %struct.ThreadLoading_t = type { float, float, float, float, i16, float } | |
| %struct.CoreLoading_t = type { float, float, float, i8, [10 x %struct.ThreadLoading_t] } | |
| %struct.OrionSoftwareDiagnostics_t = type { i32, i8, [2 x %struct.CoreLoading_t] } | |
| %struct.FftData_t = type { float, [3 x float], [3 x float] } | |
| %struct.OrionVibration_t = type { [3 x float], [3 x float], [16 x %struct.FftData_t] } | |
| %struct.NetworkDiagnostics_t = type { i16, i32, i32, i32, i32, i16, i16, i16, i16, i16, i16, i16, i16, i16 } | |
| %struct.StareStart_t = type { i32, float, i8, float, float, double, double, double, double, double, double, [4 x float], float, float, i32, float, float, float } | |
| %struct.DebugString_t = type { i32, i32, i8, i8, [128 x i8] } | |
| %struct.InsQuality_t = type { i32, i32, i32, i32, i8, float, float, float, float, float, [3 x float], [3 x float], [3 x float], [3 x float], [3 x float], float, float, float, [3 x float], [3 x float], float, float, float, i8, i8, i8, i8, [2 x float], float } | |
| %struct.OrionStartupCmd_t = type { %struct.OrionCmd_t } | |
| %struct.PosPreset_t = type { float, float, i32 } | |
| %struct.OrionPositions_t = type { i8, [6 x %struct.PosPreset_t] } | |
| %struct.Point_t = type { [3 x float] } | |
| %struct.OrionPath_t = type { i8, i8, [15 x %struct.Point_t], float, float } | |
| %struct.OrionFlirSettings_t = type { i8, i8, i32, i8, i8, i8, i8, i8, float, i32 } | |
| %struct.OrionAptinaSettings_t = type { i8, float, float, float, float, i8, float, float, float, i8, i8, float, float, float } | |
| %struct.OrionZafiroSettings_t = type { i8, i8, float, i8, float, float, i8 } | |
| %struct.OrionHitachiSettings_t = type { i8, i16, float, float, i8 } | |
| %struct.OrionSonySettings_t = type { i8, float, float, i8, i8, i8, float, float, float, float } | |
| %struct.OrionKtncSettings_t = type { i8, i16, float, i8, i8, i8, i8, i8, i8, float, i8, i8, i8 } | |
| %struct.OrionUserData_t = type { i32, i8, i32, [128 x i8] } | |
| %struct.OrionLaserCommand_t = type { i8, [16 x i8], i8, i8, i8, i16, i16, i16, i8 } | |
| %struct.OrionLaserStates_t = type { i8, [2 x %struct.OrionLaserState_t] } | |
| %struct.OrionUartConfig_t = type { i32, i32, i32, i8, i32 } | |
| %struct.OrionLimitsData_t = type { [2 x float], [2 x float], [2 x float], [2 x float], [2 x float], [2 x float], [2 x float], [2 x float], [2 x float] } | |
| %struct.InsOptions_t = type { i16, float, i16, [3 x float], float, [3 x float], float, [3 x float], float, [3 x float] } | |
| %struct.OrionNetworkSettings_t = type { i32, i32, i32, i8, i16, i16, i8 } | |
| %struct.OrionNetworkByteSettings_t = type { [4 x i8], [4 x i8], [4 x i8], i8, i16, i16, i8 } | |
| %struct.OrionNetworkVideo_t = type { i32, i16, i32, i8, i32, i8, i8 } | |
| %struct.OrionNetworkByteVideo_t = type { [4 x i8], i16, i32, i8, i32, i8, i8 } | |
| %struct.OrionCamSettings_t = type { i8, i8, i32, i32, float, float, float, i16, i16, float, [2 x float], [2 x float] } | |
| %struct.OrionCameras_t = type { i8, [2 x %struct.OrionCamSettings_t] } | |
| %struct.OrionClevisVersion_t = type { [16 x i8], [16 x i8], i32 } | |
| %struct.OrionPayloadVersion_t = type { [24 x i8], [16 x i8], i32 } | |
| %struct.OrionRetractVersion_t = type { [16 x i8] } | |
| %struct.OrionBoard_t = type { i32, i32, i32, i32, %struct.Date_t, %struct.Date_t } | |
| %struct.OrionAutopilotData_t = type { i8, i8, i16 } | |
| %union.pthread_attr_t = type { i64, [48 x i8] } | |
| @llvm.global.annotations = appending global [21 x { i8*, i8*, i8*, i32 }] [{ i8*, i8*, i8*, i32 } { i8* bitcast (i32 (%struct.mg_connection*, %struct.mg_http_message*)* @handle_camera_command to i8*), i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.12, i32 0, i32 0), i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.1, i32 0, i32 0), i32 110 }, { i8*, i8*, i8*, i32 } { i8* bitcast (i32 (%struct.mg_connection*, %struct.mg_http_message*)* @handle_get_metadata to i8*), i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.19, i32 0, i32 0), i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.1, i32 0, i32 0), i32 148 }, { i8*, i8*, i8*, i32 } { i8* getelementptr inbounds ([64000 x i8], [64000 x i8]* @wsend_video.buf, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.1, i32 0, i32 0), i32 173 }, { i8*, i8*, i8*, i32 } { i8* bitcast (i32 (i8*)* @wsend_video to i8*), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.20, i32 0, i32 0), i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.1, i32 0, i32 0), i32 167 }, { i8*, i8*, i8*, i32 } { i8* bitcast (i32 ()* @websrv_main to i8*), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.33, i32 0, i32 0), i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.1, i32 0, i32 0), i32 229 }, { i8*, i8*, i8*, i32 } { i8* bitcast ([12 x i16]* @month_day_norm to i8*), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.34, i32 0, i32 0), i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.1.35, i32 0, i32 0), i32 9 }, { i8*, i8*, i8*, i32 } { i8* bitcast ([12 x i16]* @month_day_leap to i8*), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.34, i32 0, i32 0), i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.1.35, i32 0, i32 0), i32 12 }, { i8*, i8*, i8*, i32 } { i8* bitcast (%struct.AVFormatContext** @pInputContext to i8*), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.481, i32 0, i32 0), i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.1.482, i32 0, i32 0), i32 36 }, { i8*, i8*, i8*, i32 } { i8* bitcast (%struct.AVCodecContext** @pDecodeContext to i8*), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.481, i32 0, i32 0), i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.1.482, i32 0, i32 0), i32 37 }, { i8*, i8*, i8*, i32 } { i8* bitcast (%struct.AVCodecContext** @pEncodeContext to i8*), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.481, i32 0, i32 0), i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.1.482, i32 0, i32 0), i32 38 }, { i8*, i8*, i8*, i32 } { i8* bitcast (%struct.AVFrame** @pFrame to i8*), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.481, i32 0, i32 0), i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.1.482, i32 0, i32 0), i32 39 }, { i8*, i8*, i8*, i32 } { i8* bitcast (i32* @VideoStream to i8*), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.481, i32 0, i32 0), i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.1.482, i32 0, i32 0), i32 42 }, { i8*, i8*, i8*, i32 } { i8* bitcast (i32* @DataStream to i8*), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.481, i32 0, i32 0), i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.1.482, i32 0, i32 0), i32 43 }, { i8*, i8*, i8*, i32 } { i8* bitcast (i32 (i8*)* @get_frame to i8*), i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.11.485, i32 0, i32 0), i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.1.482, i32 0, i32 0), i32 210 }, { i8*, i8*, i8*, i32 } { i8* bitcast (i32 (double*, double*, double*, double*)* @get_metadata to i8*), i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.12.488, i32 0, i32 0), i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.1.482, i32 0, i32 0), i32 236 }, { i8*, i8*, i8*, i32 } { i8* bitcast (i32 (double, double, double, i8, i8)* @send_camcmd to i8*), i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.16.491, i32 0, i32 0), i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.1.482, i32 0, i32 0), i32 459 }, { i8*, i8*, i8*, i32 } { i8* bitcast (i32 ()* @run_videoproc to i8*), i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.22.494, i32 0, i32 0), i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.1.482, i32 0, i32 0), i32 520 }, { i8*, i8*, i8*, i32 } { i8* getelementptr inbounds (%struct.TrilliumPkt_t, %struct.TrilliumPkt_t* @PktOut, i32 0, i32 0), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.481, i32 0, i32 0), i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.1.482, i32 0, i32 0), i32 34 }, { i8*, i8*, i8*, i32 } { i8* getelementptr inbounds (%struct.TrilliumPkt_t, %struct.TrilliumPkt_t* @PktIn, i32 0, i32 0), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.481, i32 0, i32 0), i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.1.482, i32 0, i32 0), i32 35 }, { i8*, i8*, i8*, i32 } { i8* bitcast (%struct.AVPacket* @Packet to i8*), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.481, i32 0, i32 0), i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.1.482, i32 0, i32 0), i32 40 }, { i8*, i8*, i8*, i32 } { i8* bitcast (%struct.AVPacket* @OutPacket to i8*), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.481, i32 0, i32 0), i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.1.482, i32 0, i32 0), i32 41 }], section "llvm.metadata" | |
| @.str.12 = private unnamed_addr constant [26 x i8] c"FUN_HANDLE_CAMERA_COMMAND\00", section "llvm.metadata" | |
| @.str.1 = private unnamed_addr constant [69 x i8] c"/workspaces/eop2-closure-mind-demo/websrv/annotated-working/websrv.c\00", section "llvm.metadata" | |
| @.str.19 = private unnamed_addr constant [24 x i8] c"FUN_HANDLE_GET_METADATA\00", section "llvm.metadata" | |
| @wsend_video.buf = internal global [64000 x i8] zeroinitializer, align 16, !dbg !0 | |
| @.str = private unnamed_addr constant [12 x i8] c"GREEN_SHARE\00", section "llvm.metadata" | |
| @.str.20 = private unnamed_addr constant [16 x i8] c"FUN_WSEND_VIDEO\00", section "llvm.metadata" | |
| @.str.33 = private unnamed_addr constant [16 x i8] c"FUN_WEBSRV_MAIN\00", section "llvm.metadata" | |
| @stderr = external dso_local global %struct._IO_FILE*, align 8 | |
| @.str.32 = private unnamed_addr constant [32 x i8] c"Failed to run video processing\0A\00", align 1 | |
| @.str.28 = private unnamed_addr constant [18 x i8] c"ws://0.0.0.0:8443\00", align 1 | |
| @.str.29 = private unnamed_addr constant [20 x i8] c"http://0.0.0.0:8443\00", align 1 | |
| @.str.30 = private unnamed_addr constant [46 x i8] c"Starting HTTPS camera API endpoint on %s/api\0A\00", align 1 | |
| @.str.31 = private unnamed_addr constant [44 x i8] c"Starting WSS video endpoint on %s/ws/video\0A\00", align 1 | |
| @.str.22 = private unnamed_addr constant [20 x i8] c"./creds/server.cert\00", align 1 | |
| @.str.23 = private unnamed_addr constant [19 x i8] c"./creds/server.key\00", align 1 | |
| @.str.24 = private unnamed_addr constant [10 x i8] c"/ws/video\00", align 1 | |
| @.str.25 = private unnamed_addr constant [49 x i8] c"Stream request received, upgrading to websocket\0A\00", align 1 | |
| @.str.26 = private unnamed_addr constant [12 x i8] c"/api/camcmd\00", align 1 | |
| @.str.27 = private unnamed_addr constant [13 x i8] c"/api/getllat\00", align 1 | |
| @webfn.s_web_root = internal global i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.21, i32 0, i32 0), align 8, !dbg !164 | |
| @.str.21 = private unnamed_addr constant [6 x i8] c"./www\00", align 1 | |
| @.str.13 = private unnamed_addr constant [26 x i8] c"{%Q:%g,%Q:%g,%Q:%g,%Q:%g}\00", align 1 | |
| @.str.14 = private unnamed_addr constant [4 x i8] c"Lat\00", align 1 | |
| @.str.15 = private unnamed_addr constant [4 x i8] c"Lon\00", align 1 | |
| @.str.16 = private unnamed_addr constant [4 x i8] c"Alt\00", align 1 | |
| @.str.17 = private unnamed_addr constant [4 x i8] c"Tim\00", align 1 | |
| @.str.8 = private unnamed_addr constant [33 x i8] c"Content-Type: application/json\0D\0A\00", align 1 | |
| @.str.18 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 | |
| @.str.2 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 | |
| @.str.3 = private unnamed_addr constant [6 x i8] c"$.pan\00", align 1 | |
| @.str.4 = private unnamed_addr constant [7 x i8] c"$.tilt\00", align 1 | |
| @.str.5 = private unnamed_addr constant [10 x i8] c"$.imptime\00", align 1 | |
| @.str.6 = private unnamed_addr constant [7 x i8] c"$.mode\00", align 1 | |
| @.str.7 = private unnamed_addr constant [7 x i8] c"$.stab\00", align 1 | |
| @.str.9 = private unnamed_addr constant [18 x i8] c"{\22result\22: \22%s\22}\0A\00", align 1 | |
| @.str.10 = private unnamed_addr constant [5 x i8] c"OKAY\00", align 1 | |
| @.str.11 = private unnamed_addr constant [5 x i8] c"FAIL\00", align 1 | |
| @month_day_norm = dso_local global [12 x i16] [i16 0, i16 31, i16 59, i16 90, i16 120, i16 151, i16 181, i16 212, i16 243, i16 273, i16 304, i16 334], align 16, !dbg !171 | |
| @month_day_leap = dso_local global [12 x i16] [i16 0, i16 31, i16 60, i16 91, i16 121, i16 152, i16 182, i16 213, i16 244, i16 274, i16 305, i16 335], align 16, !dbg !177 | |
| @.str.34 = private unnamed_addr constant [15 x i8] c"ORANGE_NOSHARE\00", section "llvm.metadata" | |
| @.str.1.35 = private unnamed_addr constant [76 x i8] c"/workspaces/eop2-closure-mind-demo/websrv/annotated-working/mathutilities.c\00", section "llvm.metadata" | |
| @fastSin.A = internal constant [4 x float] [float 0x3FC5555560000000, float 0x3FA99999A0000000, float 0x3F98618620000000, float 0x3F8C71C720000000], align 16, !dbg !183 | |
| @fastCos.A = internal constant [5 x float] [float 5.000000e-01, float 0x3FB5555560000000, float 0x3FA1111120000000, float 0x3F924924A0000000, float 0x3F86C16C20000000], align 16, !dbg !193 | |
| @__const.testEarthPosition.posECEF = private unnamed_addr constant [3 x double] [double 0x415854A640000000, double 0.000000e+00, double 0.000000e+00], align 16 | |
| @__const.testLinearAlgebra.vector = private unnamed_addr constant [3 x float] [float 1.000000e+00, float 2.000000e+00, float 3.000000e+00], align 4 | |
| @__const.getTerrainIntersection.Temp = private unnamed_addr constant [3 x float] [float 1.000000e+00, float 0.000000e+00, float 0.000000e+00], align 4 | |
| @__const.testEarthRotation.velNED = private unnamed_addr constant [3 x float] [float 1.000000e+00, float 2.000000e+00, float 3.000000e+00], align 4 | |
| @pHeadTag = dso_local global %struct.KlvTag_t* null, align 8, !dbg !199 | |
| @TagInfo = dso_local global [95 x %struct.KlvTagInfo_t] [%struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_NULL\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 4, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_CHECKSUM\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 0, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_TIME_STAMP\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 0, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_MISSION_ID\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 3, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_TAIL_NUMBER\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 3, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_PLATFORM_YAW\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0.000000e+00, double 0x401921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_PLATFORM_PITCH_SHORT\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBFD657184AE74487, double 0x3FD657184AE74487 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_PLATFORM_ROLL_SHORT\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBFEBECDE5DA115A9, double 0x3FEBECDE5DA115A9 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_PLATFORM_TAS\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 0, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_PLATFORM_IAS\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 0, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_PLATFORM_ID\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 3, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_SENSOR_ID\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 3, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_COORD_SYSTEM\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 3, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_SENSOR_LAT\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBFF921FB54442D18, double 0x3FF921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_SENSOR_LON\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xC00921FB54442D18, double 0x400921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_SENSOR_MSL\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double -9.000000e+02, double 1.900000e+04 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_SENSOR_HFOV\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0.000000e+00, double 0x400921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_SENSOR_VFOV\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0.000000e+00, double 0x400921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_SENSOR_PAN\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0.000000e+00, double 0x401921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_SENSOR_TILT\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xC00921FB54442D18, double 0x400921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_SENSOR_ROLL\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0.000000e+00, double 0x401921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_SLANT_RANGE\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0.000000e+00, double 5.000000e+06 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_TARGET_WIDTH\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0.000000e+00, double 1.000000e+04 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_IMAGE_LAT\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBFF921FB54442D18, double 0x3FF921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_IMAGE_LON\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xC00921FB54442D18, double 0x400921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_IMAGE_MSL\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double -9.000000e+02, double 1.900000e+04 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_CORNER1_LAT_OFFSET\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBF557254C2C98977, double 0x3F557254C2C98977 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_CORNER1_LON_OFFSET\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBF557254C2C98977, double 0x3F557254C2C98977 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_CORNER2_LAT_OFFSET\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBF557254C2C98977, double 0x3F557254C2C98977 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_CORNER2_LON_OFFSET\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBF557254C2C98977, double 0x3F557254C2C98977 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_CORNER3_LAT_OFFSET\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBF557254C2C98977, double 0x3F557254C2C98977 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_CORNER3_LON_OFFSET\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBF557254C2C98977, double 0x3F557254C2C98977 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_CORNER4_LAT_OFFSET\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBF557254C2C98977, double 0x3F557254C2C98977 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_CORNER4_LON_OFFSET\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBF557254C2C98977, double 0x3F557254C2C98977 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_ICING\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 0, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_WIND_DIRECTION\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0.000000e+00, double 0x401921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_WIND_SPEED\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0.000000e+00, double 1.000000e+02 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_STATIC_PRESSURE\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0.000000e+00, double 5.000000e+05 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_DENSITY_ALTITUDE\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double -9.000000e+02, double 1.900000e+04 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_OAT\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 1, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_TARGET_LAT\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBFF921FB54442D18, double 0x3FF921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_TARGET_LON\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xC00921FB54442D18, double 0x400921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_TARGET_MSL\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double -9.000000e+02, double 1.900000e+04 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_TRACK_WIDTH\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 0, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_TRACK_HEIGHT\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 0, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_TARGET_CE90\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 0, double 0.000000e+00, double 4.096000e+03 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_TARGET_LE90\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 0, double 0.000000e+00, double 4.096000e+03 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_GENERIC_FLAG\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 0, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_SECURITY\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 4, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_DYNAMIC_PRESSURE\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0.000000e+00, double 5.000000e+05 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_ANGLE_OF_ATTACK_SHORT\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 4, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_VERTICAL_VELOCITY\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double -1.800000e+02, double 1.800000e+02 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_SIDESLIP_SHORT\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBFD657184AE74487, double 0x3FD657184AE74487 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_AIRFIELD_PRESSURE\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0.000000e+00, double 5.000000e+05 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_AIRFIELD_ELEVATION\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double -9.000000e+02, double 1.900000e+04 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_HUMIDITY\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0.000000e+00, double 1.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_GROUND_SPEED\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 0, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_GROUND_RANGE\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0.000000e+00, double 5.000000e+06 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_FUEL_REMAINING\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0.000000e+00, double 1.000000e+04 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_CALLSIGN\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 3, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_WEAPON_LOAD\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 0, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_WEAPON_FIRED\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 0, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_LASER_PRF_CODE\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 0, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_FOV_NAME\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 3, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_MAGNETIC_HEADING\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0.000000e+00, double 0x401921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_VERSION\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 0, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_TARGET_COVARIANCE\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 4, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_ALT_PLATFORM_LAT\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBFF921FB54442D18, double 0x3FF921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_ALT_PLATFORM_LON\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xC00921FB54442D18, double 0x400921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_ALT_PLATFORM_MSL\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double -9.000000e+02, double 1.900000e+04 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_ALT_PLATFORM_NAME\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 3, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_ALT_PLATFORM_HEADING\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0.000000e+00, double 0x401921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_EVENT_START_TIME\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 0, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_RVT_LOCAL_SET\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 4, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_VMTI\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 4, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_SENSOR_HAE\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double -9.000000e+02, double 1.900000e+04 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_ALT_PLATFORM_HAE\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double -9.000000e+02, double 1.900000e+04 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_OPERATIONAL_MODE\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 0, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_IMAGE_HAE\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double -9.000000e+02, double 1.900000e+04 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_NORTH_VELOCITY\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double -3.270000e+02, double 3.270000e+02 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_EAST_VELOCITY\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double -3.270000e+02, double 3.270000e+02 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_IMAGE_HORIZON\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 4, double 0.000000e+00, double 0.000000e+00 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_CORNER1_LAT\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBFF921FB54442D18, double 0x3FF921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_CORNER1_LON\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xC00921FB54442D18, double 0x400921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_CORNER2_LAT\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBFF921FB54442D18, double 0x3FF921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_CORNER2_LON\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xC00921FB54442D18, double 0x400921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_CORNER3_LAT\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBFF921FB54442D18, double 0x3FF921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_CORNER3_LON\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xC00921FB54442D18, double 0x400921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_CORNER4_LAT\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBFF921FB54442D18, double 0x3FF921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_CORNER4_LON\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xC00921FB54442D18, double 0x400921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_PLATFORM_PITCH\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBFF921FB54442D18, double 0x3FF921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_PLATFORM_ROLL\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBFF921FB54442D18, double 0x3FF921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_ANGLE_OF_ATTACK\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBFF921FB54442D18, double 0x3FF921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_SIDESLIP\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 2, double 0xBFF921FB54442D18, double 0x3FF921FB54442D18 }, %struct.KlvTagInfo_t { [64 x i8] c"KLV_UAS_CORE_ID\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", i32 4, double 0.000000e+00, double 0.000000e+00 }], align 16, !dbg !325 | |
| @.str.48 = private unnamed_addr constant [37 x i8] c"Key %3d (%-32s), length: %d, value: \00", align 1 | |
| @.str.1.49 = private unnamed_addr constant [5 x i8] c"%lf\0A\00", align 1 | |
| @.str.2.50 = private unnamed_addr constant [5 x i8] c"%lu\0A\00", align 1 | |
| @.str.3.51 = private unnamed_addr constant [5 x i8] c"%ld\0A\00", align 1 | |
| @.str.4.52 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 | |
| @.str.5.53 = private unnamed_addr constant [6 x i8] c"%02x \00", align 1 | |
| @.str.6.54 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 | |
| @.str.7.55 = private unnamed_addr constant [43 x i8] c"TAG: Key = 0x%02x, Length = %d, Value = { \00", align 1 | |
| @.str.9.56 = private unnamed_addr constant [3 x i8] c", \00", align 1 | |
| @.str.10.57 = private unnamed_addr constant [4 x i8] c" }\0A\00", align 1 | |
| @.str.8.58 = private unnamed_addr constant [9 x i8] c"0x%02x%s\00", align 1 | |
| @mg_fs_packed = dso_local global %struct.mg_fs { i32 (i8*, i64*, i64*)* @packed_stat, void (i8*, void (i8*, i8*)*, i8*)* @packed_list, i8* (i8*, i32)* @packed_open, void (i8*)* @packed_close, i64 (i8*, i8*, i64)* @packed_read, i64 (i8*, i8*, i64)* @packed_write, i64 (i8*, i64)* @packed_seek, i1 (i8*, i8*)* @packed_rename, i1 (i8*)* @packed_remove, i1 (i8*)* @packed_mkdir }, align 8, !dbg !341 | |
| @.str.33.59 = private unnamed_addr constant [5 x i8] c"%.*s\00", align 1 | |
| @.str.95 = private unnamed_addr constant [3 x i8] c"0x\00", align 1 | |
| @.str.246 = private unnamed_addr constant [8 x i8] c"\08\0C\0A\0D\09\\\22\00", align 1 | |
| @.str.247 = private unnamed_addr constant [8 x i8] c"bfnrt\\\22\00", align 1 | |
| @.str.94 = private unnamed_addr constant [17 x i8] c"0123456789abcdef\00", align 1 | |
| @.str.38 = private unnamed_addr constant [3 x i8] c"%s\00", align 1 | |
| @.str.96 = private unnamed_addr constant [2 x i8] c"0\00", align 1 | |
| @.str.97 = private unnamed_addr constant [4 x i8] c"inf\00", align 1 | |
| @.str.98 = private unnamed_addr constant [5 x i8] c"-inf\00", align 1 | |
| @.str.99 = private unnamed_addr constant [4 x i8] c"nan\00", align 1 | |
| @mg_fs_posix = dso_local global %struct.mg_fs { i32 (i8*, i64*, i64*)* @p_stat, void (i8*, void (i8*, i8*)*, i8*)* @p_list, i8* (i8*, i32)* @p_open, void (i8*)* @p_close, i64 (i8*, i8*, i64)* @p_read, i64 (i8*, i8*, i64)* @p_write, i64 (i8*, i64)* @p_seek, i1 (i8*, i8*)* @p_rename, i1 (i8*)* @p_remove, i1 (i8*)* @p_mkdir }, align 8, !dbg !1094 | |
| @.str.124 = private unnamed_addr constant [3 x i8] c"rb\00", align 1 | |
| @.str.148 = private unnamed_addr constant [4 x i8] c"a+b\00", align 1 | |
| @.str.146 = private unnamed_addr constant [2 x i8] c".\00", align 1 | |
| @.str.147 = private unnamed_addr constant [3 x i8] c"..\00", align 1 | |
| @s_spec = dso_local global i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.49, i32 0, i32 0), align 8, !dbg !1097 | |
| @.str.49 = private unnamed_addr constant [2 x i8] c"2\00", align 1 | |
| @s_log_func = dso_local global void (i8)* @default_logger, align 8, !dbg !1100 | |
| @.str.131 = private unnamed_addr constant [43 x i8] c"DNS server URL is NULL. Call mg_mgr_init()\00", align 1 | |
| @.str.132 = private unnamed_addr constant [9 x i8] c"resolver\00", align 1 | |
| @.str.133 = private unnamed_addr constant [12 x i8] c"resolve OOM\00", align 1 | |
| @.str.134 = private unnamed_addr constant [10 x i8] c"src/dns.c\00", align 1 | |
| @__func__.mg_sendnsreq = private unnamed_addr constant [13 x i8] c"mg_sendnsreq\00", align 1 | |
| @.str.135 = private unnamed_addr constant [35 x i8] c"%lu resolving %.*s @ %s, txnid %hu\00", align 1 | |
| @.str.136 = private unnamed_addr constant [9 x i8] c"DNS send\00", align 1 | |
| @.str.145 = private unnamed_addr constant [6 x i8] c"\00\00\01\00\01\00", align 1 | |
| @.str.80 = private unnamed_addr constant [11 x i8] c"src/sock.c\00", align 1 | |
| @__func__.mg_send = private unnamed_addr constant [8 x i8] c"mg_send\00", align 1 | |
| @.str.81 = private unnamed_addr constant [24 x i8] c"%lu %p %d:%d %ld err %d\00", align 1 | |
| @.str.44 = private unnamed_addr constant [12 x i8] c"src/iobuf.c\00", align 1 | |
| @__func__.mg_iobuf_resize = private unnamed_addr constant [16 x i8] c"mg_iobuf_resize\00", align 1 | |
| @.str.45 = private unnamed_addr constant [11 x i8] c"%lld->%lld\00", align 1 | |
| @__func__.iolog = private unnamed_addr constant [6 x i8] c"iolog\00", align 1 | |
| @.str.255 = private unnamed_addr constant [3 x i8] c"<-\00", align 1 | |
| @.str.256 = private unnamed_addr constant [3 x i8] c"->\00", align 1 | |
| @.str.254 = private unnamed_addr constant [24 x i8] c"\0A-- %lu %s %s %s %s %ld\00", align 1 | |
| @.str.53 = private unnamed_addr constant [3 x i8] c" \00", align 1 | |
| @.str.54 = private unnamed_addr constant [4 x i8] c" \00", align 1 | |
| @.str.58 = private unnamed_addr constant [8 x i8] c"[%s]:%d\00", align 1 | |
| @.str.59 = private unnamed_addr constant [6 x i8] c"%s:%d\00", align 1 | |
| @.str.60 = private unnamed_addr constant [24 x i8] c"%x:%x:%x:%x:%x:%x:%x:%x\00", align 1 | |
| @.str.61 = private unnamed_addr constant [12 x i8] c"%d.%d.%d.%d\00", align 1 | |
| @.str.52 = private unnamed_addr constant [17 x i8] c"%llx %d %s:%d:%s\00", align 1 | |
| @.str.137 = private unnamed_addr constant [12 x i8] c"DNS timeout\00", align 1 | |
| @__func__.dns_cb = private unnamed_addr constant [7 x i8] c"dns_cb\00", align 1 | |
| @.str.138 = private unnamed_addr constant [25 x i8] c"Unexpected DNS response:\00", align 1 | |
| @.str.139 = private unnamed_addr constant [6 x i8] c"%s %d\00", align 1 | |
| @.str.140 = private unnamed_addr constant [13 x i8] c"%lu %s is %s\00", align 1 | |
| @.str.141 = private unnamed_addr constant [21 x i8] c"%s DNS lookup failed\00", align 1 | |
| @.str.142 = private unnamed_addr constant [21 x i8] c"%lu already resolved\00", align 1 | |
| @.str.143 = private unnamed_addr constant [16 x i8] c"stray DNS reply\00", align 1 | |
| @.str.144 = private unnamed_addr constant [10 x i8] c"DNS error\00", align 1 | |
| @.str.62 = private unnamed_addr constant [10 x i8] c"src/net.c\00", align 1 | |
| @__func__.mg_connect = private unnamed_addr constant [11 x i8] c"mg_connect\00", align 1 | |
| @.str.64 = private unnamed_addr constant [9 x i8] c"null url\00", align 1 | |
| @.str.65 = private unnamed_addr constant [4 x i8] c"OOM\00", align 1 | |
| @.str.66 = private unnamed_addr constant [5 x i8] c"udp:\00", align 1 | |
| @.str.67 = private unnamed_addr constant [10 x i8] c"%lu -1 %s\00", align 1 | |
| @.str.68 = private unnamed_addr constant [12 x i8] c"src/event.c\00", align 1 | |
| @__func__.mg_error = private unnamed_addr constant [9 x i8] c"mg_error\00", align 1 | |
| @.str.1.69 = private unnamed_addr constant [10 x i8] c"%lu %p %s\00", align 1 | |
| @.str.87 = private unnamed_addr constant [13 x i8] c"socket(): %d\00", align 1 | |
| @__func__.mg_connect_resolved = private unnamed_addr constant [20 x i8] c"mg_connect_resolved\00", align 1 | |
| @.str.88 = private unnamed_addr constant [30 x i8] c"%lu %p connect in progress...\00", align 1 | |
| @.str.89 = private unnamed_addr constant [12 x i8] c"connect: %d\00", align 1 | |
| @.str.252 = private unnamed_addr constant [10 x i8] c"localhost\00", align 1 | |
| @.str.120 = private unnamed_addr constant [6 x i8] c"http:\00", align 1 | |
| @.str.121 = private unnamed_addr constant [4 x i8] c"ws:\00", align 1 | |
| @.str.114 = private unnamed_addr constant [5 x i8] c"wss:\00", align 1 | |
| @.str.115 = private unnamed_addr constant [7 x i8] c"https:\00", align 1 | |
| @.str.122 = private unnamed_addr constant [6 x i8] c"mqtt:\00", align 1 | |
| @.str.116 = private unnamed_addr constant [7 x i8] c"mqtts:\00", align 1 | |
| @.str.2.70 = private unnamed_addr constant [7 x i8] c"%s..%d\00", align 1 | |
| @.str.3.71 = private unnamed_addr constant [20 x i8] c"Content-Disposition\00", align 1 | |
| @.str.4.72 = private unnamed_addr constant [5 x i8] c"name\00", align 1 | |
| @.str.5.73 = private unnamed_addr constant [9 x i8] c"filename\00", align 1 | |
| @.str.6.74 = private unnamed_addr constant [22 x i8] c"Authorization: Basic \00", align 1 | |
| @.str.7.75 = private unnamed_addr constant [3 x i8] c"\0D\0A\00", align 1 | |
| @.str.8.76 = private unnamed_addr constant [11 x i8] c"src/http.c\00", align 1 | |
| @__func__.mg_http_bauth = private unnamed_addr constant [14 x i8] c"mg_http_bauth\00", align 1 | |
| @.str.9.77 = private unnamed_addr constant [35 x i8] c"%lu %s cannot resize iobuf %d->%d \00", align 1 | |
| @.str.10.78 = private unnamed_addr constant [2 x i8] c" \00", align 1 | |
| @.str.11.79 = private unnamed_addr constant [15 x i8] c"Content-Length\00", align 1 | |
| @.str.12.80 = private unnamed_addr constant [6 x i8] c"HTTP/\00", align 1 | |
| @.str.13.81 = private unnamed_addr constant [4 x i8] c"PUT\00", align 1 | |
| @.str.14.82 = private unnamed_addr constant [5 x i8] c"POST\00", align 1 | |
| @.str.15.83 = private unnamed_addr constant [4 x i8] c"204\00", align 1 | |
| @.str.149 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 | |
| @.str.150 = private unnamed_addr constant [5 x i8] c": \0D\0A\00", align 1 | |
| @.str.16.84 = private unnamed_addr constant [6 x i8] c"%lx\0D\0A\00", align 1 | |
| @.str.18.87 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 | |
| @.str.17.88 = private unnamed_addr constant [41 x i8] c"HTTP/1.1 %d %s\0D\0A%sContent-Length: %d\0D\0A\0D\0A\00", align 1 | |
| @.str.151 = private unnamed_addr constant [9 x i8] c"Continue\00", align 1 | |
| @.str.152 = private unnamed_addr constant [8 x i8] c"Created\00", align 1 | |
| @.str.153 = private unnamed_addr constant [9 x i8] c"Accepted\00", align 1 | |
| @.str.154 = private unnamed_addr constant [11 x i8] c"No Content\00", align 1 | |
| @.str.155 = private unnamed_addr constant [16 x i8] c"Partial Content\00", align 1 | |
| @.str.156 = private unnamed_addr constant [18 x i8] c"Moved Permanently\00", align 1 | |
| @.str.157 = private unnamed_addr constant [6 x i8] c"Found\00", align 1 | |
| @.str.158 = private unnamed_addr constant [13 x i8] c"Not Modified\00", align 1 | |
| @.str.159 = private unnamed_addr constant [12 x i8] c"Bad Request\00", align 1 | |
| @.str.160 = private unnamed_addr constant [13 x i8] c"Unauthorized\00", align 1 | |
| @.str.161 = private unnamed_addr constant [10 x i8] c"Forbidden\00", align 1 | |
| @.str.162 = private unnamed_addr constant [10 x i8] c"Not Found\00", align 1 | |
| @.str.163 = private unnamed_addr constant [13 x i8] c"I'm a teapot\00", align 1 | |
| @.str.164 = private unnamed_addr constant [22 x i8] c"Internal Server Error\00", align 1 | |
| @.str.165 = private unnamed_addr constant [16 x i8] c"Not Implemented\00", align 1 | |
| @.str.166 = private unnamed_addr constant [3 x i8] c"OK\00", align 1 | |
| @.str.19.89 = private unnamed_addr constant [12 x i8] c"\22%lld.%lld\22\00", align 1 | |
| @__func__.mg_http_serve_file = private unnamed_addr constant [19 x i8] c"mg_http_serve_file\00", align 1 | |
| @.str.20.90 = private unnamed_addr constant [10 x i8] c"NULL [%s]\00", align 1 | |
| @.str.21.91 = private unnamed_addr constant [6 x i8] c"%s.gz\00", align 1 | |
| @.str.22.92 = private unnamed_addr constant [11 x i8] c"Not found\0A\00", align 1 | |
| @.str.23.93 = private unnamed_addr constant [14 x i8] c"If-None-Match\00", align 1 | |
| @.str.24.94 = private unnamed_addr constant [51 x i8] c"HTTP/1.1 304 Not Modified\0D\0A%sContent-Length: 0\0D\0A\0D\0A\00", align 1 | |
| @.str.25.95 = private unnamed_addr constant [6 x i8] c"Range\00", align 1 | |
| @.str.26.96 = private unnamed_addr constant [30 x i8] c"Content-Range: bytes */%lld\0D\0A\00", align 1 | |
| @.str.27.97 = private unnamed_addr constant [38 x i8] c"Content-Range: bytes %lld-%lld/%lld\0D\0A\00", align 1 | |
| @.str.29.98 = private unnamed_addr constant [25 x i8] c"Content-Encoding: gzip\0D\0A\00", align 1 | |
| @.str.28.99 = private unnamed_addr constant [77 x i8] c"HTTP/1.1 %d %s\0D\0AContent-Type: %.*s\0D\0AEtag: %s\0D\0AContent-Length: %llu\0D\0A%s%s%s\0D\0A\00", align 1 | |
| @.str.30.100 = private unnamed_addr constant [5 x i8] c"HEAD\00", align 1 | |
| @.str.245 = private unnamed_addr constant [17 x i8] c"HTTP parse:\0A%.*s\00", align 1 | |
| @.str.243 = private unnamed_addr constant [8 x i8] c"chunked\00", align 1 | |
| @.str.244 = private unnamed_addr constant [18 x i8] c"Transfer-Encoding\00", align 1 | |
| @.str.224 = private unnamed_addr constant [7 x i8] c"bytes=\00", align 1 | |
| @__const.guess_content_type.tab = private unnamed_addr constant [61 x %struct.mg_str] [%struct.mg_str { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.167, i32 0, i32 0), i64 4 }, %struct.mg_str { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.168, i32 0, i32 0), i64 24 }, %struct.mg_str { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.169, i32 0, i32 0), i64 3 }, %struct.mg_str { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.168, i32 0, i32 0), i64 24 }, %struct.mg_str { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.170, i32 0, i32 0), i64 3 }, %struct.mg_str { i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.171, i32 0, i32 0), i64 23 }, %struct.mg_str { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.172, i32 0, i32 0), i64 2 }, %struct.mg_str { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.173, i32 0, i32 0), i64 30 }, %struct.mg_str { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.174, i32 0, i32 0), i64 3 }, %struct.mg_str { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.175, i32 0, i32 0), i64 9 }, %struct.mg_str { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.176, i32 0, i32 0), i64 3 }, %struct.mg_str { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.177, i32 0, i32 0), i64 9 }, %struct.mg_str { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.178, i32 0, i32 0), i64 3 }, %struct.mg_str { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.179, i32 0, i32 0), i64 10 }, %struct.mg_str { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.180, i32 0, i32 0), i64 4 }, %struct.mg_str { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.179, i32 0, i32 0), i64 10 }, %struct.mg_str { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.181, i32 0, i32 0), i64 4 }, %struct.mg_str { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.182, i32 0, i32 0), i64 9 }, %struct.mg_str { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.183, i32 0, i32 0), i64 3 }, %struct.mg_str { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.184, i32 0, i32 0), i64 8 }, %struct.mg_str { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.185, i32 0, i32 0), i64 3 }, %struct.mg_str { i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.186, i32 0, i32 0), i64 13 }, %struct.mg_str { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.187, i32 0, i32 0), i64 3 }, %struct.mg_str { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.188, i32 0, i32 0), i64 25 }, %struct.mg_str { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.189, i32 0, i32 0), i64 3 }, %struct.mg_str { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.190, i32 0, i32 0), i64 15 }, %struct.mg_str { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.191, i32 0, i32 0), i64 3 }, %struct.mg_str { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.192, i32 0, i32 0), i64 8 }, %struct.mg_str { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.193, i32 0, i32 0), i64 3 }, %struct.mg_str { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.194, i32 0, i32 0), i64 18 }, %struct.mg_str { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.195, i32 0, i32 0), i64 3 }, %struct.mg_str { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.196, i32 0, i32 0), i64 24 }, %struct.mg_str { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.197, i32 0, i32 0), i64 2 }, %struct.mg_str { i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.198, i32 0, i32 0), i64 16 }, %struct.mg_str { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.199, i32 0, i32 0), i64 3 }, %struct.mg_str { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.200, i32 0, i32 0), i64 12 }, %struct.mg_str { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.201, i32 0, i32 0), i64 4 }, %struct.mg_str { i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.202, i32 0, i32 0), i64 16 }, %struct.mg_str { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.203, i32 0, i32 0), i64 3 }, %struct.mg_str { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.204, i32 0, i32 0), i64 15 }, %struct.mg_str { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.205, i32 0, i32 0), i64 3 }, %struct.mg_str { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.206, i32 0, i32 0), i64 10 }, %struct.mg_str { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.207, i32 0, i32 0), i64 3 }, %struct.mg_str { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.208, i32 0, i32 0), i64 9 }, %struct.mg_str { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.209, i32 0, i32 0), i64 4 }, %struct.mg_str { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.210, i32 0, i32 0), i64 10 }, %struct.mg_str { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.211, i32 0, i32 0), i64 3 }, %struct.mg_str { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.212, i32 0, i32 0), i64 15 }, %struct.mg_str { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.213, i32 0, i32 0), i64 5 }, %struct.mg_str { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.168, i32 0, i32 0), i64 24 }, %struct.mg_str { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.214, i32 0, i32 0), i64 3 }, %struct.mg_str { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.215, i32 0, i32 0), i64 18 }, %struct.mg_str { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.216, i32 0, i32 0), i64 3 }, %struct.mg_str { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.217, i32 0, i32 0), i64 9 }, %struct.mg_str { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.218, i32 0, i32 0), i64 4 }, %struct.mg_str { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.219, i32 0, i32 0), i64 10 }, %struct.mg_str { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.220, i32 0, i32 0), i64 3 }, %struct.mg_str { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.221, i32 0, i32 0), i64 15 }, %struct.mg_str { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.222, i32 0, i32 0), i64 3 }, %struct.mg_str { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.223, i32 0, i32 0), i64 10 }, %struct.mg_str zeroinitializer], align 16 | |
| @.str.188 = private unnamed_addr constant [26 x i8] c"text/plain; charset=utf-8\00", align 1 | |
| @.str.167 = private unnamed_addr constant [5 x i8] c"html\00", align 1 | |
| @.str.168 = private unnamed_addr constant [25 x i8] c"text/html; charset=utf-8\00", align 1 | |
| @.str.169 = private unnamed_addr constant [4 x i8] c"htm\00", align 1 | |
| @.str.170 = private unnamed_addr constant [4 x i8] c"css\00", align 1 | |
| @.str.171 = private unnamed_addr constant [24 x i8] c"text/css; charset=utf-8\00", align 1 | |
| @.str.172 = private unnamed_addr constant [3 x i8] c"js\00", align 1 | |
| @.str.173 = private unnamed_addr constant [31 x i8] c"text/javascript; charset=utf-8\00", align 1 | |
| @.str.174 = private unnamed_addr constant [4 x i8] c"gif\00", align 1 | |
| @.str.175 = private unnamed_addr constant [10 x i8] c"image/gif\00", align 1 | |
| @.str.176 = private unnamed_addr constant [4 x i8] c"png\00", align 1 | |
| @.str.177 = private unnamed_addr constant [10 x i8] c"image/png\00", align 1 | |
| @.str.178 = private unnamed_addr constant [4 x i8] c"jpg\00", align 1 | |
| @.str.179 = private unnamed_addr constant [11 x i8] c"image/jpeg\00", align 1 | |
| @.str.180 = private unnamed_addr constant [5 x i8] c"jpeg\00", align 1 | |
| @.str.181 = private unnamed_addr constant [5 x i8] c"woff\00", align 1 | |
| @.str.182 = private unnamed_addr constant [10 x i8] c"font/woff\00", align 1 | |
| @.str.183 = private unnamed_addr constant [4 x i8] c"ttf\00", align 1 | |
| @.str.184 = private unnamed_addr constant [9 x i8] c"font/ttf\00", align 1 | |
| @.str.185 = private unnamed_addr constant [4 x i8] c"svg\00", align 1 | |
| @.str.186 = private unnamed_addr constant [14 x i8] c"image/svg+xml\00", align 1 | |
| @.str.187 = private unnamed_addr constant [4 x i8] c"txt\00", align 1 | |
| @.str.189 = private unnamed_addr constant [4 x i8] c"avi\00", align 1 | |
| @.str.190 = private unnamed_addr constant [16 x i8] c"video/x-msvideo\00", align 1 | |
| @.str.191 = private unnamed_addr constant [4 x i8] c"csv\00", align 1 | |
| @.str.192 = private unnamed_addr constant [9 x i8] c"text/csv\00", align 1 | |
| @.str.193 = private unnamed_addr constant [4 x i8] c"doc\00", align 1 | |
| @.str.194 = private unnamed_addr constant [19 x i8] c"application/msword\00", align 1 | |
| @.str.195 = private unnamed_addr constant [4 x i8] c"exe\00", align 1 | |
| @.str.196 = private unnamed_addr constant [25 x i8] c"application/octet-stream\00", align 1 | |
| @.str.197 = private unnamed_addr constant [3 x i8] c"gz\00", align 1 | |
| @.str.198 = private unnamed_addr constant [17 x i8] c"application/gzip\00", align 1 | |
| @.str.199 = private unnamed_addr constant [4 x i8] c"ico\00", align 1 | |
| @.str.200 = private unnamed_addr constant [13 x i8] c"image/x-icon\00", align 1 | |
| @.str.201 = private unnamed_addr constant [5 x i8] c"json\00", align 1 | |
| @.str.202 = private unnamed_addr constant [17 x i8] c"application/json\00", align 1 | |
| @.str.203 = private unnamed_addr constant [4 x i8] c"mov\00", align 1 | |
| @.str.204 = private unnamed_addr constant [16 x i8] c"video/quicktime\00", align 1 | |
| @.str.205 = private unnamed_addr constant [4 x i8] c"mp3\00", align 1 | |
| @.str.206 = private unnamed_addr constant [11 x i8] c"audio/mpeg\00", align 1 | |
| @.str.207 = private unnamed_addr constant [4 x i8] c"mp4\00", align 1 | |
| @.str.208 = private unnamed_addr constant [10 x i8] c"video/mp4\00", align 1 | |
| @.str.209 = private unnamed_addr constant [5 x i8] c"mpeg\00", align 1 | |
| @.str.210 = private unnamed_addr constant [11 x i8] c"video/mpeg\00", align 1 | |
| @.str.211 = private unnamed_addr constant [4 x i8] c"pdf\00", align 1 | |
| @.str.212 = private unnamed_addr constant [16 x i8] c"application/pdf\00", align 1 | |
| @.str.213 = private unnamed_addr constant [6 x i8] c"shtml\00", align 1 | |
| @.str.214 = private unnamed_addr constant [4 x i8] c"tgz\00", align 1 | |
| @.str.215 = private unnamed_addr constant [19 x i8] c"application/tar-gz\00", align 1 | |
| @.str.216 = private unnamed_addr constant [4 x i8] c"wav\00", align 1 | |
| @.str.217 = private unnamed_addr constant [10 x i8] c"audio/wav\00", align 1 | |
| @.str.218 = private unnamed_addr constant [5 x i8] c"webp\00", align 1 | |
| @.str.219 = private unnamed_addr constant [11 x i8] c"image/webp\00", align 1 | |
| @.str.220 = private unnamed_addr constant [4 x i8] c"zip\00", align 1 | |
| @.str.221 = private unnamed_addr constant [16 x i8] c"application/zip\00", align 1 | |
| @.str.222 = private unnamed_addr constant [4 x i8] c"3gp\00", align 1 | |
| @.str.223 = private unnamed_addr constant [11 x i8] c"video/3gpp\00", align 1 | |
| @.str.93 = private unnamed_addr constant [16 x i8] c"SSI not enabled\00", align 1 | |
| @.str.229 = private unnamed_addr constant [453 x i8] c"<script>function srt(tb, sc, so, d) {var tr = Array.prototype.slice.call(tb.rows, 0),tr = tr.sort(function (a, b) { var c1 = a.cells[sc], c2 = b.cells[sc],n1 = c1.getAttribute('name'), n2 = c2.getAttribute('name'), t1 = a.cells[2].getAttribute('name'), t2 = b.cells[2].getAttribute('name'); return so * (t1 < 0 && t2 >= 0 ? -1 : t2 < 0 && t1 >= 0 ? 1 : n1 ? parseInt(n2) - parseInt(n1) : c1.textContent.trim().localeCompare(c2.textContent.trim())); });\00", align 1 | |
| @.str.230 = private unnamed_addr constant [452 x i8] c"for (var i = 0; i < tr.length; i++) tb.appendChild(tr[i]); if (!d) window.location.hash = ('sc=' + sc + '&so=' + so); };window.onload = function() {var tb = document.getElementById('tb');var m = /sc=([012]).so=(1|-1)/.exec(window.location.hash) || [0, 2, 1];var sc = m[1], so = m[2]; document.onclick = function(ev) { var c = ev.target.rel; if (c) {if (c == sc) so *= -1; srt(tb, c, so); sc = c; ev.preventDefault();}};srt(tb, sc, so, true);}</script>\00", align 1 | |
| @.str.231 = private unnamed_addr constant [88 x i8] c"HTTP/1.1 200 OK\0D\0AContent-Type: text/html; charset=utf-8\0D\0A%sContent-Length: \0D\0A\0D\0A\00", align 1 | |
| @.str.232 = private unnamed_addr constant [392 x i8] c"<!DOCTYPE html><html><head><title>Index of %.*s</title>%s%s<style>th,td {text-align: left; padding-right: 1em; font-family: monospace; }</style></head><body><h1>Index of %.*s</h1><table cellpadding=\220\22><thead><tr><th><a href=\22#\22 rel=\220\22>Name</a></th><th><a href=\22#\22 rel=\221\22>Modified</a></th><th><a href=\22#\22 rel=\222\22>Size</a></th></tr><tr><td colspan=\223\22><hr></td></tr></thead><tbody id=\22tb\22>\0A\00", align 1 | |
| @.str.233 = private unnamed_addr constant [80 x i8] c" <tr><td><a href=\22..\22>..</a></td><td name=-1></td><td name=-1>[DIR]</td></tr>\0A\00", align 1 | |
| @.str.234 = private unnamed_addr constant [113 x i8] c"</tbody><tfoot><tr><td colspan=\223\22><hr></td></tr></tfoot></table><address>Mongoose v.%s</address></body></html>\0A\00", align 1 | |
| @.str.235 = private unnamed_addr constant [4 x i8] c"7.7\00", align 1 | |
| @.str.236 = private unnamed_addr constant [4 x i8] c"%lu\00", align 1 | |
| @.str.41 = private unnamed_addr constant [7 x i8] c"%s%c%s\00", align 1 | |
| @__func__.printdirentry = private unnamed_addr constant [14 x i8] c"printdirentry\00", align 1 | |
| @.str.237 = private unnamed_addr constant [13 x i8] c"%s truncated\00", align 1 | |
| @.str.238 = private unnamed_addr constant [17 x i8] c"%lu stat(%s): %d\00", align 1 | |
| @.str.119 = private unnamed_addr constant [2 x i8] c"/\00", align 1 | |
| @.str.239 = private unnamed_addr constant [6 x i8] c"[DIR]\00", align 1 | |
| @.str.240 = private unnamed_addr constant [5 x i8] c"%lld\00", align 1 | |
| @.str.241 = private unnamed_addr constant [4 x i8] c"%ld\00", align 1 | |
| @.str.242 = private unnamed_addr constant [88 x i8] c" <tr><td><a href=\22%.*s%s\22>%s%s</a></td><td name=%lu>%s</td><td name=%lld>%s</td></tr>\0A\00", align 1 | |
| @__func__.uri_to_path2 = private unnamed_addr constant [13 x i8] c"uri_to_path2\00", align 1 | |
| @.str.225 = private unnamed_addr constant [18 x i8] c"%lu %.*s -> %s %d\00", align 1 | |
| @.str.226 = private unnamed_addr constant [59 x i8] c"HTTP/1.1 301 Moved\0D\0ALocation: %.*s/\0D\0AContent-Length: 0\0D\0A\0D\0A\00", align 1 | |
| @.str.227 = private unnamed_addr constant [12 x i8] c"/index.html\00", align 1 | |
| @.str.228 = private unnamed_addr constant [13 x i8] c"/index.shtml\00", align 1 | |
| @.str.31.103 = private unnamed_addr constant [14 x i8] c"Authorization\00", align 1 | |
| @.str.32.104 = private unnamed_addr constant [7 x i8] c"Basic \00", align 1 | |
| @.str.34.105 = private unnamed_addr constant [8 x i8] c"Bearer \00", align 1 | |
| @.str.35 = private unnamed_addr constant [7 x i8] c"Cookie\00", align 1 | |
| @.str.36 = private unnamed_addr constant [13 x i8] c"access_token\00", align 1 | |
| @.str.37 = private unnamed_addr constant [7 x i8] c"offset\00", align 1 | |
| @.str.39 = private unnamed_addr constant [14 x i8] c"name required\00", align 1 | |
| @.str.40 = private unnamed_addr constant [3 x i8] c"%d\00", align 1 | |
| @__func__.mg_http_upload = private unnamed_addr constant [15 x i8] c"mg_http_upload\00", align 1 | |
| @.str.42 = private unnamed_addr constant [20 x i8] c"%d bytes @ %ld [%s]\00", align 1 | |
| @.str.43 = private unnamed_addr constant [13 x i8] c"open(%s): %d\00", align 1 | |
| @__func__.mg_listen = private unnamed_addr constant [10 x i8] c"mg_listen\00", align 1 | |
| @.str.68.110 = private unnamed_addr constant [7 x i8] c"OOM %s\00", align 1 | |
| @.str.69 = private unnamed_addr constant [21 x i8] c"Failed: %s, errno %d\00", align 1 | |
| @__func__.mg_open_listener = private unnamed_addr constant [17 x i8] c"mg_open_listener\00", align 1 | |
| @.str.82 = private unnamed_addr constant [26 x i8] c"invalid listening URL: %s\00", align 1 | |
| @.str.83 = private unnamed_addr constant [11 x i8] c"socket: %d\00", align 1 | |
| @.str.84 = private unnamed_addr constant [14 x i8] c"reuseaddr: %d\00", align 1 | |
| @.str.85 = private unnamed_addr constant [9 x i8] c"bind: %d\00", align 1 | |
| @.str.86 = private unnamed_addr constant [11 x i8] c"listen: %d\00", align 1 | |
| @.str.46 = private unnamed_addr constant [5 x i8] c"true\00", align 1 | |
| @.str.47 = private unnamed_addr constant [5 x i8] c"null\00", align 1 | |
| @.str.48.111 = private unnamed_addr constant [6 x i8] c"false\00", align 1 | |
| @.str.50 = private unnamed_addr constant [10 x i8] c"src/log.c\00", align 1 | |
| @__func__.mg_log_set = private unnamed_addr constant [11 x i8] c"mg_log_set\00", align 1 | |
| @.str.51 = private unnamed_addr constant [24 x i8] c"Setting log level to %s\00", align 1 | |
| @.str.55 = private unnamed_addr constant [8 x i8] c"\00\04MQTT\04\00", align 1 | |
| @.str.123 = private unnamed_addr constant [13 x i8] c"/dev/urandom\00", align 1 | |
| @.str.56 = private unnamed_addr constant [11 x i8] c"src/mqtt.c\00", align 1 | |
| @__func__.mg_mqtt_pub = private unnamed_addr constant [12 x i8] c"mg_mqtt_pub\00", align 1 | |
| @.str.57 = private unnamed_addr constant [21 x i8] c"%lu [%.*s] -> [%.*s]\00", align 1 | |
| @__func__.mqtt_cb = private unnamed_addr constant [8 x i8] c"mqtt_cb\00", align 1 | |
| @.str.248 = private unnamed_addr constant [27 x i8] c"%lu MQTT malformed message\00", align 1 | |
| @.str.249 = private unnamed_addr constant [29 x i8] c"%p MQTT CMD %d len %d [%.*s]\00", align 1 | |
| @.str.250 = private unnamed_addr constant [14 x i8] c"%lu Connected\00", align 1 | |
| @.str.251 = private unnamed_addr constant [30 x i8] c"%lu MQTT auth failed, code %d\00", align 1 | |
| @__func__.mg_close_conn = private unnamed_addr constant [14 x i8] c"mg_close_conn\00", align 1 | |
| @.str.63 = private unnamed_addr constant [11 x i8] c"%lu closed\00", align 1 | |
| @__func__.mg_mgr_free = private unnamed_addr constant [12 x i8] c"mg_mgr_free\00", align 1 | |
| @.str.70 = private unnamed_addr constant [23 x i8] c"All connections closed\00", align 1 | |
| @__func__.mg_mgr_poll = private unnamed_addr constant [12 x i8] c"mg_mgr_poll\00", align 1 | |
| @.str.92 = private unnamed_addr constant [20 x i8] c"%lu %c%c %c%c%c%c%c\00", align 1 | |
| @__func__.write_conn = private unnamed_addr constant [11 x i8] c"write_conn\00", align 1 | |
| @.str.262 = private unnamed_addr constant [26 x i8] c"max_recv_buf_size reached\00", align 1 | |
| @.str.263 = private unnamed_addr constant [4 x i8] c"oom\00", align 1 | |
| @__func__.read_conn = private unnamed_addr constant [10 x i8] c"read_conn\00", align 1 | |
| @.str.100 = private unnamed_addr constant [15 x i8] c"src/tls_mbed.c\00", align 1 | |
| @__func__.mg_tls_handshake = private unnamed_addr constant [17 x i8] c"mg_tls_handshake\00", align 1 | |
| @.str.101 = private unnamed_addr constant [12 x i8] c"%lu success\00", align 1 | |
| @.str.102 = private unnamed_addr constant [28 x i8] c"%lu pending, %d%d %d (-%#x)\00", align 1 | |
| @.str.103 = private unnamed_addr constant [20 x i8] c"TLS handshake: -%#x\00", align 1 | |
| @__func__.mg_net_recv = private unnamed_addr constant [12 x i8] c"mg_net_recv\00", align 1 | |
| @.str.264 = private unnamed_addr constant [19 x i8] c"%lu n=%d, errno=%d\00", align 1 | |
| @__func__.mg_net_send = private unnamed_addr constant [12 x i8] c"mg_net_send\00", align 1 | |
| @.str.261 = private unnamed_addr constant [23 x i8] c"error connecting to %s\00", align 1 | |
| @__func__.accept_conn = private unnamed_addr constant [12 x i8] c"accept_conn\00", align 1 | |
| @.str.258 = private unnamed_addr constant [28 x i8] c"%lu accept failed, errno %d\00", align 1 | |
| @.str.259 = private unnamed_addr constant [8 x i8] c"%lu OOM\00", align 1 | |
| @.str.260 = private unnamed_addr constant [16 x i8] c"%lu accepted %s\00", align 1 | |
| @__func__.mg_iotest = private unnamed_addr constant [10 x i8] c"mg_iotest\00", align 1 | |
| @.str.257 = private unnamed_addr constant [23 x i8] c"poll failed, errno: %d\00", align 1 | |
| @.str.71 = private unnamed_addr constant [17 x i8] c"udp://8.8.8.8:53\00", align 1 | |
| @.str.72 = private unnamed_addr constant [32 x i8] c"udp://[2001:4860:4860::8888]:53\00", align 1 | |
| @.str.73 = private unnamed_addr constant [11 x i8] c"src/sntp.c\00", align 1 | |
| @__func__.mg_sntp_parse = private unnamed_addr constant [14 x i8] c"mg_sntp_parse\00", align 1 | |
| @.str.74 = private unnamed_addr constant [15 x i8] c"corrupt packet\00", align 1 | |
| @.str.75 = private unnamed_addr constant [19 x i8] c"not a server reply\00", align 1 | |
| @.str.76 = private unnamed_addr constant [28 x i8] c"server sent a kiss of death\00", align 1 | |
| @.str.77 = private unnamed_addr constant [23 x i8] c"unexpected version: %d\00", align 1 | |
| @__func__.mg_sntp_request = private unnamed_addr constant [16 x i8] c"mg_sntp_request\00", align 1 | |
| @.str.78 = private unnamed_addr constant [24 x i8] c"%lu wait until resolved\00", align 1 | |
| @.str.79 = private unnamed_addr constant [26 x i8] c"udp://time.google.com:123\00", align 1 | |
| @__func__.sntp_cb = private unnamed_addr constant [8 x i8] c"sntp_cb\00", align 1 | |
| @.str.253 = private unnamed_addr constant [6 x i8] c"%u.%u\00", align 1 | |
| @__const.mg_mkpipe.sp = private unnamed_addr constant [2 x i32] [i32 -1, i32 -1], align 4 | |
| @__func__.mg_mkpipe = private unnamed_addr constant [10 x i8] c"mg_mkpipe\00", align 1 | |
| @.str.90 = private unnamed_addr constant [26 x i8] c"Cannot create socket pair\00", align 1 | |
| @.str.91 = private unnamed_addr constant [16 x i8] c"%lu %p pipe %lu\00", align 1 | |
| @.str.104 = private unnamed_addr constant [8 x i8] c"TLS OOM\00", align 1 | |
| @__func__.mg_tls_init = private unnamed_addr constant [12 x i8] c"mg_tls_init\00", align 1 | |
| @.str.105 = private unnamed_addr constant [16 x i8] c"%lu Setting TLS\00", align 1 | |
| @.str.106 = private unnamed_addr constant [17 x i8] c"tls defaults %#x\00", align 1 | |
| @.str.107 = private unnamed_addr constant [2 x i8] c"*\00", align 1 | |
| @.str.108 = private unnamed_addr constant [21 x i8] c"parse-ca(%s) err %#x\00", align 1 | |
| @.str.109 = private unnamed_addr constant [26 x i8] c"parse-cert(%s) err %#x %s\00", align 1 | |
| @.str.110 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 | |
| @.str.111 = private unnamed_addr constant [16 x i8] c"tls key(%s) %#x\00", align 1 | |
| @.str.112 = private unnamed_addr constant [13 x i8] c"own cert %#x\00", align 1 | |
| @.str.113 = private unnamed_addr constant [14 x i8] c"setup err %#x\00", align 1 | |
| @__func__.debug_cb = private unnamed_addr constant [9 x i8] c"debug_cb\00", align 1 | |
| @.str.265 = private unnamed_addr constant [12 x i8] c"%lu %d %.*s\00", align 1 | |
| @.str.117 = private unnamed_addr constant [5 x i8] c"ssl:\00", align 1 | |
| @.str.118 = private unnamed_addr constant [5 x i8] c"tls:\00", align 1 | |
| @.str.266 = private unnamed_addr constant [17 x i8] c"%d.%d.%d.%d/%d%n\00", align 1 | |
| @.str.267 = private unnamed_addr constant [14 x i8] c"%d.%d.%d.%d%n\00", align 1 | |
| @.str.125 = private unnamed_addr constant [9 x i8] c"src/ws.c\00", align 1 | |
| @__func__.mg_ws_send = private unnamed_addr constant [11 x i8] c"mg_ws_send\00", align 1 | |
| @.str.126 = private unnamed_addr constant [18 x i8] c"WS out: %d [%.*s]\00", align 1 | |
| @.str.127 = private unnamed_addr constant [127 x i8] c"GET %s HTTP/1.1\0D\0AUpgrade: websocket\0D\0AHost: %.*s\0D\0AConnection: Upgrade\0D\0A%.*sSec-WebSocket-Version: 13\0D\0ASec-WebSocket-Key: %s\0D\0A\0D\0A\00", align 1 | |
| @.str.268 = private unnamed_addr constant [4 x i8] c"101\00", align 1 | |
| @__func__.mg_ws_cb = private unnamed_addr constant [9 x i8] c"mg_ws_cb\00", align 1 | |
| @.str.269 = private unnamed_addr constant [29 x i8] c"%lu WS handshake error: %.*s\00", align 1 | |
| @.str.270 = private unnamed_addr constant [8 x i8] c"WS PONG\00", align 1 | |
| @.str.271 = private unnamed_addr constant [17 x i8] c"%lu Got WS CLOSE\00", align 1 | |
| @.str.272 = private unnamed_addr constant [17 x i8] c"unknown WS op %d\00", align 1 | |
| @.str.128 = private unnamed_addr constant [18 x i8] c"Sec-WebSocket-Key\00", align 1 | |
| @.str.129 = private unnamed_addr constant [21 x i8] c"WS upgrade expected\0A\00", align 1 | |
| @.str.130 = private unnamed_addr constant [23 x i8] c"Sec-WebSocket-Protocol\00", align 1 | |
| @.str.273 = private unnamed_addr constant [37 x i8] c"258EAFA5-E914-47DA-95CA-C5AB0DC85B11\00", align 1 | |
| @.str.274 = private unnamed_addr constant [104 x i8] c"HTTP/1.1 101 Switching Protocols\0D\0AUpgrade: websocket\0D\0AConnection: Upgrade\0D\0ASec-WebSocket-Accept: %s\0D\0A%s\00", align 1 | |
| @.str.275 = private unnamed_addr constant [31 x i8] c"Sec-WebSocket-Protocol: %.*s\0D\0A\00", align 1 | |
| @.str.276 = private unnamed_addr constant [16 x i8] c"255.255.255.255\00", align 1 | |
| @Handle = dso_local global i32 -1, align 4, !dbg !1105 | |
| @.str.311 = private unnamed_addr constant [19 x i8] c"Failed to open %s\0A\00", align 1 | |
| @.str.1.312 = private unnamed_addr constant [29 x i8] c"Looking for gimbal on %s...\0A\00", align 1 | |
| @.str.2.317 = private unnamed_addr constant [9 x i8] c"/dev/tty\00", align 1 | |
| @.str.3.320 = private unnamed_addr constant [17 x i8] c"Connected to %s\0A\00", align 1 | |
| @.str.4.321 = private unnamed_addr constant [25 x i8] c"Failed to connect to %s\0A\00", align 1 | |
| @GetSockAddr.SockAddr = internal global %struct.sockaddr_in zeroinitializer, align 4, !dbg !1287 | |
| @OrionCommReceive.Pkt = internal global %struct.TrilliumPkt_t zeroinitializer, align 2, !dbg !1278 | |
| @pInputContext = dso_local global %struct.AVFormatContext* null, align 8, !dbg !1292 | |
| @pDecodeContext = dso_local global %struct.AVCodecContext* null, align 8, !dbg !2279 | |
| @pEncodeContext = dso_local global %struct.AVCodecContext* null, align 8, !dbg !2885 | |
| @pFrame = dso_local global %struct.AVFrame* null, align 8, !dbg !2887 | |
| @VideoStream = dso_local global i32 0, align 4, !dbg !2889 | |
| @DataStream = dso_local global i32 0, align 4, !dbg !2891 | |
| @Packet = common dso_local global %struct.AVPacket zeroinitializer, align 8, !dbg !2991 | |
| @OutPacket = common dso_local global %struct.AVPacket zeroinitializer, align 8, !dbg !2993 | |
| @PktOut = common dso_local global %struct.TrilliumPkt_t zeroinitializer, align 2, !dbg !2970 | |
| @PktIn = common dso_local global %struct.TrilliumPkt_t zeroinitializer, align 2, !dbg !2989 | |
| @.str.481 = private unnamed_addr constant [15 x i8] c"ORANGE_NOSHARE\00", section "llvm.metadata" | |
| @.str.1.482 = private unnamed_addr constant [72 x i8] c"/workspaces/eop2-closure-mind-demo/websrv/annotated-working/cameractl.c\00", section "llvm.metadata" | |
| @.str.11.485 = private unnamed_addr constant [20 x i8] c"XDLINKAGE_GET_FRAME\00", section "llvm.metadata" | |
| @.str.12.488 = private unnamed_addr constant [23 x i8] c"XDLINKAGE_GET_METADATA\00", section "llvm.metadata" | |
| @.str.16.491 = private unnamed_addr constant [22 x i8] c"XDLINKAGE_SEND_CAMCMD\00", section "llvm.metadata" | |
| @.str.22.494 = private unnamed_addr constant [24 x i8] c"XDLINKAGE_RUN_VIDEOPROC\00", section "llvm.metadata" | |
| @.str.10.495 = private unnamed_addr constant [13 x i8] c"ORANGE_SHARE\00", section "llvm.metadata" | |
| @run_videoproc.inited = internal global i32 0, align 4, !dbg !2964 | |
| @.str.18.496 = private unnamed_addr constant [7 x i8] c"MYADDR\00", align 1 | |
| @.str.19.497 = private unnamed_addr constant [8 x i8] c"CAMADDR\00", align 1 | |
| @.str.20.498 = private unnamed_addr constant [53 x i8] c"Error with environment variables MYADDR and CAMADDR\0A\00", align 1 | |
| @.str.21.499 = private unnamed_addr constant [61 x i8] c"Initializing video processing with myaddr %s and camaddr %s\0A\00", align 1 | |
| @run_videoproc.arg = internal global [32 x i8] zeroinitializer, align 16, !dbg !2967 | |
| @.str.17.500 = private unnamed_addr constant [47 x i8] c"Unable to open camera, sleeping for 5 seconds\0A\00", align 1 | |
| @extract_metadata.MetaDataBytes = internal global i64 0, align 8, !dbg !2959 | |
| @extract_metadata.MetaDataSize = internal global i64 0, align 8, !dbg !2957 | |
| @extract_metadata.KlvHeader = internal constant [16 x i8] c"\06\0E+4\02\0B\01\01\0E\01\03\01\01\00\00\00", align 16, !dbg !2961 | |
| @extract_metadata.MetaDataBufferSize = internal global i64 0, align 8, !dbg !2955 | |
| @extract_metadata.pMetaData = internal global i8* null, align 8, !dbg !2950 | |
| @get_mdatabuf.inited = internal global i32 0, align 4, !dbg !2948 | |
| @get_mdatabuf.wp = internal global %struct.llat_st zeroinitializer, align 8, !dbg !2934 | |
| @.str.14.501 = private unnamed_addr constant [39 x i8] c"Error sending a frame for encoding:%s\0A\00", align 1 | |
| @.str.15.502 = private unnamed_addr constant [26 x i8] c"Error during encoding:%s\0A\00", align 1 | |
| @.str.13.503 = private unnamed_addr constant [37 x i8] c"Compressed frame larger than buffer\0A\00", align 1 | |
| @get_framebuf.inited = internal global i32 0, align 4, !dbg !2932 | |
| @get_framebuf.wp = internal global %struct.framebuf_st zeroinitializer, align 8, !dbg !2893 | |
| @.str.6.504 = private unnamed_addr constant [24 x i8] c"%3hhu.%3hhu.%3hhu.%3hhu\00", align 1 | |
| @.str.7.505 = private unnamed_addr constant [12 x i8] c"udp://%s:%d\00", align 1 | |
| @.str.8.506 = private unnamed_addr constant [48 x i8] c"Closing communications on gimbal connect error\0A\00", align 1 | |
| @.str.9.507 = private unnamed_addr constant [28 x i8] c"Failed to open video at %s\0A\00", align 1 | |
| @.str.2.508 = private unnamed_addr constant [8 x i8] c"timeout\00", align 1 | |
| @.str.3.509 = private unnamed_addr constant [8 x i8] c"5000000\00", align 1 | |
| @.str.4.510 = private unnamed_addr constant [7 x i8] c"preset\00", align 1 | |
| @.str.5.511 = private unnamed_addr constant [5 x i8] c"slow\00", align 1 | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i32 @handle_camera_command(%struct.mg_connection* %0, %struct.mg_http_message* %1) #0 !dbg !4025 { | |
| %3 = alloca %struct.mg_connection*, align 8 | |
| %4 = alloca %struct.mg_http_message*, align 8 | |
| %5 = alloca double, align 8 | |
| %6 = alloca double, align 8 | |
| %7 = alloca double, align 8 | |
| %8 = alloca i8, align 1 | |
| %9 = alloca i8, align 1 | |
| %10 = alloca %struct.mg_str, align 8 | |
| %11 = alloca %struct.mg_str, align 8 | |
| %12 = alloca i8*, align 8 | |
| %13 = alloca i8*, align 8 | |
| %14 = alloca i8*, align 8 | |
| %15 = alloca i8*, align 8 | |
| %16 = alloca i8*, align 8 | |
| store %struct.mg_connection* %0, %struct.mg_connection** %3, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.mg_connection** %3, metadata !4028, metadata !DIExpression()), !dbg !4029 | |
| store %struct.mg_http_message* %1, %struct.mg_http_message** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.mg_http_message** %4, metadata !4030, metadata !DIExpression()), !dbg !4031 | |
| call void @llvm.dbg.declare(metadata double* %5, metadata !4032, metadata !DIExpression()), !dbg !4033 | |
| %17 = bitcast double* %5 to i8*, !dbg !4034 | |
| call void @llvm.var.annotation(i8* %17, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.1, i32 0, i32 0), i32 115), !dbg !4034 | |
| call void @llvm.dbg.declare(metadata double* %6, metadata !4035, metadata !DIExpression()), !dbg !4036 | |
| %18 = bitcast double* %6 to i8*, !dbg !4034 | |
| call void @llvm.var.annotation(i8* %18, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.1, i32 0, i32 0), i32 115), !dbg !4034 | |
| call void @llvm.dbg.declare(metadata double* %7, metadata !4037, metadata !DIExpression()), !dbg !4038 | |
| %19 = bitcast double* %7 to i8*, !dbg !4034 | |
| call void @llvm.var.annotation(i8* %19, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.1, i32 0, i32 0), i32 115), !dbg !4034 | |
| call void @llvm.dbg.declare(metadata i8* %8, metadata !4039, metadata !DIExpression()), !dbg !4040 | |
| call void @llvm.var.annotation(i8* %8, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.1, i32 0, i32 0), i32 116), !dbg !4041 | |
| call void @llvm.dbg.declare(metadata i8* %9, metadata !4042, metadata !DIExpression()), !dbg !4043 | |
| call void @llvm.var.annotation(i8* %9, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.1, i32 0, i32 0), i32 116), !dbg !4041 | |
| %20 = load %struct.mg_http_message*, %struct.mg_http_message** %4, align 8, !dbg !4044 | |
| %21 = icmp ne %struct.mg_http_message* %20, null, !dbg !4046 | |
| br i1 %21, label %22, label %111, !dbg !4047 | |
| 22: ; preds = %2 | |
| call void @llvm.dbg.declare(metadata %struct.mg_str* %10, metadata !4048, metadata !DIExpression()), !dbg !4050 | |
| %23 = call { i8*, i64 } @mg_str_s(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)), !dbg !4051 | |
| %24 = bitcast %struct.mg_str* %10 to { i8*, i64 }*, !dbg !4051 | |
| %25 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %24, i32 0, i32 0, !dbg !4051 | |
| %26 = extractvalue { i8*, i64 } %23, 0, !dbg !4051 | |
| store i8* %26, i8** %25, align 8, !dbg !4051 | |
| %27 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %24, i32 0, i32 1, !dbg !4051 | |
| %28 = extractvalue { i8*, i64 } %23, 1, !dbg !4051 | |
| store i64 %28, i64* %27, align 8, !dbg !4051 | |
| %29 = load %struct.mg_http_message*, %struct.mg_http_message** %4, align 8, !dbg !4052 | |
| %30 = getelementptr inbounds %struct.mg_http_message, %struct.mg_http_message* %29, i32 0, i32 5, !dbg !4053 | |
| %31 = getelementptr inbounds %struct.mg_str, %struct.mg_str* %30, i32 0, i32 0, !dbg !4054 | |
| %32 = load i8*, i8** %31, align 8, !dbg !4054 | |
| %33 = load %struct.mg_http_message*, %struct.mg_http_message** %4, align 8, !dbg !4055 | |
| %34 = getelementptr inbounds %struct.mg_http_message, %struct.mg_http_message* %33, i32 0, i32 5, !dbg !4056 | |
| %35 = getelementptr inbounds %struct.mg_str, %struct.mg_str* %34, i32 0, i32 1, !dbg !4057 | |
| %36 = load i64, i64* %35, align 8, !dbg !4057 | |
| %37 = call { i8*, i64 } @mg_str_n(i8* %32, i64 %36), !dbg !4058 | |
| %38 = bitcast %struct.mg_str* %11 to { i8*, i64 }*, !dbg !4058 | |
| %39 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %38, i32 0, i32 0, !dbg !4058 | |
| %40 = extractvalue { i8*, i64 } %37, 0, !dbg !4058 | |
| store i8* %40, i8** %39, align 8, !dbg !4058 | |
| %41 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %38, i32 0, i32 1, !dbg !4058 | |
| %42 = extractvalue { i8*, i64 } %37, 1, !dbg !4058 | |
| store i64 %42, i64* %41, align 8, !dbg !4058 | |
| %43 = bitcast %struct.mg_str* %10 to i8*, !dbg !4058 | |
| %44 = bitcast %struct.mg_str* %11 to i8*, !dbg !4058 | |
| call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %43, i8* align 8 %44, i64 16, i1 false), !dbg !4058 | |
| call void @llvm.dbg.declare(metadata i8** %12, metadata !4059, metadata !DIExpression()), !dbg !4060 | |
| %45 = bitcast %struct.mg_str* %10 to { i8*, i64 }*, !dbg !4061 | |
| %46 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %45, i32 0, i32 0, !dbg !4061 | |
| %47 = load i8*, i8** %46, align 8, !dbg !4061 | |
| %48 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %45, i32 0, i32 1, !dbg !4061 | |
| %49 = load i64, i64* %48, align 8, !dbg !4061 | |
| %50 = call i8* @mg_json_get_str(i8* %47, i64 %49, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.3, i64 0, i64 0)), !dbg !4061 | |
| store i8* %50, i8** %12, align 8, !dbg !4060 | |
| call void @llvm.dbg.declare(metadata i8** %13, metadata !4062, metadata !DIExpression()), !dbg !4063 | |
| %51 = bitcast %struct.mg_str* %10 to { i8*, i64 }*, !dbg !4064 | |
| %52 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %51, i32 0, i32 0, !dbg !4064 | |
| %53 = load i8*, i8** %52, align 8, !dbg !4064 | |
| %54 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %51, i32 0, i32 1, !dbg !4064 | |
| %55 = load i64, i64* %54, align 8, !dbg !4064 | |
| %56 = call i8* @mg_json_get_str(i8* %53, i64 %55, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0)), !dbg !4064 | |
| store i8* %56, i8** %13, align 8, !dbg !4063 | |
| call void @llvm.dbg.declare(metadata i8** %14, metadata !4065, metadata !DIExpression()), !dbg !4066 | |
| %57 = bitcast %struct.mg_str* %10 to { i8*, i64 }*, !dbg !4067 | |
| %58 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %57, i32 0, i32 0, !dbg !4067 | |
| %59 = load i8*, i8** %58, align 8, !dbg !4067 | |
| %60 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %57, i32 0, i32 1, !dbg !4067 | |
| %61 = load i64, i64* %60, align 8, !dbg !4067 | |
| %62 = call i8* @mg_json_get_str(i8* %59, i64 %61, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.5, i64 0, i64 0)), !dbg !4067 | |
| store i8* %62, i8** %14, align 8, !dbg !4066 | |
| call void @llvm.dbg.declare(metadata i8** %15, metadata !4068, metadata !DIExpression()), !dbg !4069 | |
| %63 = bitcast %struct.mg_str* %10 to { i8*, i64 }*, !dbg !4070 | |
| %64 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %63, i32 0, i32 0, !dbg !4070 | |
| %65 = load i8*, i8** %64, align 8, !dbg !4070 | |
| %66 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %63, i32 0, i32 1, !dbg !4070 | |
| %67 = load i64, i64* %66, align 8, !dbg !4070 | |
| %68 = call i8* @mg_json_get_str(i8* %65, i64 %67, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.6, i64 0, i64 0)), !dbg !4070 | |
| store i8* %68, i8** %15, align 8, !dbg !4069 | |
| call void @llvm.dbg.declare(metadata i8** %16, metadata !4071, metadata !DIExpression()), !dbg !4072 | |
| %69 = bitcast %struct.mg_str* %10 to { i8*, i64 }*, !dbg !4073 | |
| %70 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %69, i32 0, i32 0, !dbg !4073 | |
| %71 = load i8*, i8** %70, align 8, !dbg !4073 | |
| %72 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %69, i32 0, i32 1, !dbg !4073 | |
| %73 = load i64, i64* %72, align 8, !dbg !4073 | |
| %74 = call i8* @mg_json_get_str(i8* %71, i64 %73, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.7, i64 0, i64 0)), !dbg !4073 | |
| store i8* %74, i8** %16, align 8, !dbg !4072 | |
| %75 = load i8*, i8** %12, align 8, !dbg !4074 | |
| %76 = call double @atof(i8* %75) #10, !dbg !4075 | |
| store double %76, double* %5, align 8, !dbg !4076 | |
| %77 = load i8*, i8** %13, align 8, !dbg !4077 | |
| %78 = call double @atof(i8* %77) #10, !dbg !4078 | |
| store double %78, double* %6, align 8, !dbg !4079 | |
| %79 = load i8*, i8** %14, align 8, !dbg !4080 | |
| %80 = call double @atof(i8* %79) #10, !dbg !4081 | |
| store double %80, double* %7, align 8, !dbg !4082 | |
| %81 = load i8*, i8** %15, align 8, !dbg !4083 | |
| %82 = call i64 @strlen(i8* %81) #10, !dbg !4084 | |
| %83 = icmp uge i64 %82, 1, !dbg !4085 | |
| br i1 %83, label %84, label %89, !dbg !4084 | |
| 84: ; preds = %22 | |
| %85 = load i8*, i8** %15, align 8, !dbg !4086 | |
| %86 = getelementptr inbounds i8, i8* %85, i64 0, !dbg !4086 | |
| %87 = load i8, i8* %86, align 1, !dbg !4086 | |
| %88 = sext i8 %87 to i32, !dbg !4086 | |
| br label %90, !dbg !4084 | |
| 89: ; preds = %22 | |
| br label %90, !dbg !4084 | |
| 90: ; preds = %89, %84 | |
| %91 = phi i32 [ %88, %84 ], [ 95, %89 ], !dbg !4084 | |
| %92 = trunc i32 %91 to i8, !dbg !4084 | |
| store i8 %92, i8* %8, align 1, !dbg !4087 | |
| %93 = load i8*, i8** %16, align 8, !dbg !4088 | |
| %94 = call i32 @atoi(i8* %93) #10, !dbg !4089 | |
| %95 = trunc i32 %94 to i8, !dbg !4090 | |
| store i8 %95, i8* %9, align 1, !dbg !4091 | |
| %96 = load i8*, i8** %12, align 8, !dbg !4092 | |
| call void @free(i8* %96) #7, !dbg !4093 | |
| %97 = load i8*, i8** %13, align 8, !dbg !4094 | |
| call void @free(i8* %97) #7, !dbg !4095 | |
| %98 = load i8*, i8** %14, align 8, !dbg !4096 | |
| call void @free(i8* %98) #7, !dbg !4097 | |
| %99 = load i8*, i8** %15, align 8, !dbg !4098 | |
| call void @free(i8* %99) #7, !dbg !4099 | |
| %100 = load i8*, i8** %16, align 8, !dbg !4100 | |
| call void @free(i8* %100) #7, !dbg !4101 | |
| %101 = load double, double* %5, align 8, !dbg !4102 | |
| %102 = load double, double* %6, align 8, !dbg !4104 | |
| %103 = load double, double* %7, align 8, !dbg !4105 | |
| %104 = load i8, i8* %8, align 1, !dbg !4106 | |
| %105 = load i8, i8* %9, align 1, !dbg !4107 | |
| %106 = call i32 @send_camcmd(double %101, double %102, double %103, i8 signext %104, i8 signext %105), !dbg !4108 | |
| %107 = icmp eq i32 %106, 1, !dbg !4109 | |
| br i1 %107, label %108, label %110, !dbg !4110 | |
| 108: ; preds = %90 | |
| %109 = load %struct.mg_connection*, %struct.mg_connection** %3, align 8, !dbg !4111 | |
| call void (%struct.mg_connection*, i32, i8*, i8*, ...) @mg_http_reply(%struct.mg_connection* %109, i32 200, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0)), !dbg !4113 | |
| br label %110, !dbg !4114 | |
| 110: ; preds = %108, %90 | |
| br label %111, !dbg !4115 | |
| 111: ; preds = %110, %2 | |
| %112 = load %struct.mg_connection*, %struct.mg_connection** %3, align 8, !dbg !4116 | |
| call void (%struct.mg_connection*, i32, i8*, i8*, ...) @mg_http_reply(%struct.mg_connection* %112, i32 200, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.11, i64 0, i64 0)), !dbg !4117 | |
| ret i32 0, !dbg !4118 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i32 @handle_get_metadata(%struct.mg_connection* %0, %struct.mg_http_message* %1) #0 !dbg !4119 { | |
| %3 = alloca %struct.mg_connection*, align 8 | |
| %4 = alloca %struct.mg_http_message*, align 8 | |
| %5 = alloca double, align 8 | |
| %6 = alloca double, align 8 | |
| %7 = alloca double, align 8 | |
| %8 = alloca double, align 8 | |
| %9 = alloca i8*, align 8 | |
| store %struct.mg_connection* %0, %struct.mg_connection** %3, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.mg_connection** %3, metadata !4120, metadata !DIExpression()), !dbg !4121 | |
| store %struct.mg_http_message* %1, %struct.mg_http_message** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.mg_http_message** %4, metadata !4122, metadata !DIExpression()), !dbg !4123 | |
| call void @llvm.dbg.declare(metadata double* %5, metadata !4124, metadata !DIExpression()), !dbg !4125 | |
| %10 = bitcast double* %5 to i8*, !dbg !4126 | |
| call void @llvm.var.annotation(i8* %10, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.1, i32 0, i32 0), i32 153), !dbg !4126 | |
| call void @llvm.dbg.declare(metadata double* %6, metadata !4127, metadata !DIExpression()), !dbg !4128 | |
| %11 = bitcast double* %6 to i8*, !dbg !4126 | |
| call void @llvm.var.annotation(i8* %11, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.1, i32 0, i32 0), i32 153), !dbg !4126 | |
| call void @llvm.dbg.declare(metadata double* %7, metadata !4129, metadata !DIExpression()), !dbg !4130 | |
| %12 = bitcast double* %7 to i8*, !dbg !4126 | |
| call void @llvm.var.annotation(i8* %12, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.1, i32 0, i32 0), i32 153), !dbg !4126 | |
| call void @llvm.dbg.declare(metadata double* %8, metadata !4131, metadata !DIExpression()), !dbg !4132 | |
| %13 = bitcast double* %8 to i8*, !dbg !4126 | |
| call void @llvm.var.annotation(i8* %13, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.1, i32 0, i32 0), i32 153), !dbg !4126 | |
| %14 = call i32 @get_metadata(double* %5, double* %6, double* %7, double* %8), !dbg !4133 | |
| %15 = icmp ne i32 %14, 1, !dbg !4135 | |
| br i1 %15, label %16, label %17, !dbg !4136 | |
| 16: ; preds = %2 | |
| store double 0.000000e+00, double* %5, align 8, !dbg !4137 | |
| store double 0.000000e+00, double* %6, align 8, !dbg !4139 | |
| store double 0.000000e+00, double* %7, align 8, !dbg !4140 | |
| store double 0.000000e+00, double* %8, align 8, !dbg !4141 | |
| br label %17, !dbg !4142 | |
| 17: ; preds = %16, %2 | |
| call void @llvm.dbg.declare(metadata i8** %9, metadata !4143, metadata !DIExpression()), !dbg !4144 | |
| %18 = load double, double* %5, align 8, !dbg !4145 | |
| %19 = load double, double* %6, align 8, !dbg !4146 | |
| %20 = load double, double* %7, align 8, !dbg !4147 | |
| %21 = load double, double* %8, align 8, !dbg !4148 | |
| %22 = call i8* (i8*, ...) @mg_mprintf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.14, i64 0, i64 0), double %18, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0), double %19, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0), double %20, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.17, i64 0, i64 0), double %21), !dbg !4149 | |
| store i8* %22, i8** %9, align 8, !dbg !4144 | |
| %23 = load %struct.mg_connection*, %struct.mg_connection** %3, align 8, !dbg !4150 | |
| %24 = load i8*, i8** %9, align 8, !dbg !4151 | |
| call void (%struct.mg_connection*, i32, i8*, i8*, ...) @mg_http_reply(%struct.mg_connection* %23, i32 200, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.18, i64 0, i64 0), i8* %24), !dbg !4152 | |
| %25 = load i8*, i8** %9, align 8, !dbg !4153 | |
| call void @free(i8* %25) #7, !dbg !4154 | |
| ret i32 0, !dbg !4155 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i32 @wsend_video(i8* %0) #0 !dbg !2 { | |
| %2 = alloca i8*, align 8 | |
| %3 = alloca %struct.mg_mgr*, align 8 | |
| %4 = alloca i32, align 4 | |
| %5 = alloca %struct.mg_connection*, align 8 | |
| store i8* %0, i8** %2, align 8 | |
| call void @llvm.dbg.declare(metadata i8** %2, metadata !4156, metadata !DIExpression()), !dbg !4157 | |
| call void @llvm.dbg.declare(metadata %struct.mg_mgr** %3, metadata !4158, metadata !DIExpression()), !dbg !4159 | |
| %6 = load i8*, i8** %2, align 8, !dbg !4160 | |
| %7 = bitcast i8* %6 to %struct.mg_mgr*, !dbg !4161 | |
| store %struct.mg_mgr* %7, %struct.mg_mgr** %3, align 8, !dbg !4159 | |
| call void @llvm.dbg.declare(metadata i32* %4, metadata !4162, metadata !DIExpression()), !dbg !4163 | |
| %8 = call i32 @get_frame(i8* getelementptr inbounds ([64000 x i8], [64000 x i8]* @wsend_video.buf, i64 0, i64 0)), !dbg !4164 | |
| store i32 %8, i32* %4, align 4, !dbg !4165 | |
| %9 = load i32, i32* %4, align 4, !dbg !4166 | |
| %10 = icmp sgt i32 %9, 0, !dbg !4168 | |
| br i1 %10, label %11, label %36, !dbg !4169 | |
| 11: ; preds = %1 | |
| call void @llvm.dbg.declare(metadata %struct.mg_connection** %5, metadata !4170, metadata !DIExpression()), !dbg !4173 | |
| %12 = load %struct.mg_mgr*, %struct.mg_mgr** %3, align 8, !dbg !4174 | |
| %13 = getelementptr inbounds %struct.mg_mgr, %struct.mg_mgr* %12, i32 0, i32 0, !dbg !4175 | |
| %14 = load %struct.mg_connection*, %struct.mg_connection** %13, align 8, !dbg !4175 | |
| store %struct.mg_connection* %14, %struct.mg_connection** %5, align 8, !dbg !4173 | |
| br label %15, !dbg !4176 | |
| 15: ; preds = %31, %11 | |
| %16 = load %struct.mg_connection*, %struct.mg_connection** %5, align 8, !dbg !4177 | |
| %17 = icmp ne %struct.mg_connection* %16, null, !dbg !4179 | |
| br i1 %17, label %18, label %35, !dbg !4180 | |
| 18: ; preds = %15 | |
| %19 = load %struct.mg_connection*, %struct.mg_connection** %5, align 8, !dbg !4181 | |
| %20 = getelementptr inbounds %struct.mg_connection, %struct.mg_connection* %19, i32 0, i32 12, !dbg !4184 | |
| %21 = getelementptr inbounds [50 x i8], [50 x i8]* %20, i64 0, i64 0, !dbg !4181 | |
| %22 = load i8, i8* %21, align 8, !dbg !4181 | |
| %23 = sext i8 %22 to i32, !dbg !4181 | |
| %24 = icmp eq i32 %23, 83, !dbg !4185 | |
| br i1 %24, label %25, label %30, !dbg !4186 | |
| 25: ; preds = %18 | |
| %26 = load %struct.mg_connection*, %struct.mg_connection** %5, align 8, !dbg !4187 | |
| %27 = load i32, i32* %4, align 4, !dbg !4189 | |
| %28 = sext i32 %27 to i64, !dbg !4189 | |
| %29 = call i64 @mg_ws_send(%struct.mg_connection* %26, i8* getelementptr inbounds ([64000 x i8], [64000 x i8]* @wsend_video.buf, i64 0, i64 0), i64 %28, i32 2), !dbg !4190 | |
| br label %30, !dbg !4191 | |
| 30: ; preds = %25, %18 | |
| br label %31, !dbg !4192 | |
| 31: ; preds = %30 | |
| %32 = load %struct.mg_connection*, %struct.mg_connection** %5, align 8, !dbg !4193 | |
| %33 = getelementptr inbounds %struct.mg_connection, %struct.mg_connection* %32, i32 0, i32 0, !dbg !4194 | |
| %34 = load %struct.mg_connection*, %struct.mg_connection** %33, align 8, !dbg !4194 | |
| store %struct.mg_connection* %34, %struct.mg_connection** %5, align 8, !dbg !4195 | |
| br label %15, !dbg !4196, !llvm.loop !4197 | |
| 35: ; preds = %15 | |
| br label %36, !dbg !4199 | |
| 36: ; preds = %35, %1 | |
| ret i32 0, !dbg !4200 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i32 @websrv_main() #0 !dbg !4201 { | |
| br label %1, !dbg !4202 | |
| 1: ; preds = %4, %0 | |
| %2 = call i32 @run_videoproc(), !dbg !4203 | |
| %3 = icmp ne i32 %2, 0, !dbg !4204 | |
| br i1 %3, label %4, label %7, !dbg !4202 | |
| 4: ; preds = %1 | |
| %5 = load %struct._IO_FILE*, %struct._IO_FILE** @stderr, align 8, !dbg !4205 | |
| %6 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %5, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.32, i64 0, i64 0)), !dbg !4207 | |
| br label %1, !dbg !4202, !llvm.loop !4208 | |
| 7: ; preds = %1 | |
| call void @run_webserver(), !dbg !4210 | |
| ret i32 0, !dbg !4211 | |
| } | |
| declare dso_local i32 @fprintf(%struct._IO_FILE*, i8*, ...) #1 | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @run_webserver() #0 !dbg !4212 { | |
| %1 = alloca %struct.mg_mgr, align 8 | |
| %2 = alloca i8*, align 8 | |
| %3 = alloca i8*, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.mg_mgr* %1, metadata !4215, metadata !DIExpression()), !dbg !4216 | |
| call void @llvm.dbg.declare(metadata i8** %2, metadata !4217, metadata !DIExpression()), !dbg !4218 | |
| store i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.28, i64 0, i64 0), i8** %2, align 8, !dbg !4218 | |
| call void @llvm.dbg.declare(metadata i8** %3, metadata !4219, metadata !DIExpression()), !dbg !4220 | |
| store i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.29, i64 0, i64 0), i8** %3, align 8, !dbg !4220 | |
| call void @mg_mgr_init(%struct.mg_mgr* %1), !dbg !4221 | |
| %4 = load %struct._IO_FILE*, %struct._IO_FILE** @stderr, align 8, !dbg !4222 | |
| %5 = load i8*, i8** %3, align 8, !dbg !4223 | |
| %6 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %4, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.30, i64 0, i64 0), i8* %5), !dbg !4224 | |
| %7 = load %struct._IO_FILE*, %struct._IO_FILE** @stderr, align 8, !dbg !4225 | |
| %8 = load i8*, i8** %2, align 8, !dbg !4226 | |
| %9 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %7, i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.31, i64 0, i64 0), i8* %8), !dbg !4227 | |
| %10 = load i8*, i8** %3, align 8, !dbg !4228 | |
| %11 = call %struct.mg_connection* @mg_http_listen(%struct.mg_mgr* %1, i8* %10, void (%struct.mg_connection*, i32, i8*, i8*)* @webfn, i8* inttoptr (i64 1 to i8*)), !dbg !4229 | |
| %12 = bitcast %struct.mg_mgr* %1 to i8*, !dbg !4230 | |
| %13 = call %struct.mg_timer* @mg_timer_add(%struct.mg_mgr* %1, i64 40, i32 1, void (i8*)* bitcast (i32 (i8*)* @wsend_video to void (i8*)*), i8* %12), !dbg !4231 | |
| br label %14, !dbg !4232 | |
| 14: ; preds = %14, %0 | |
| call void @mg_mgr_poll(%struct.mg_mgr* %1, i32 5), !dbg !4233 | |
| br label %14, !dbg !4236, !llvm.loop !4237 | |
| } | |
| ; Function Attrs: nounwind readnone speculatable willreturn | |
| declare void @llvm.dbg.declare(metadata, metadata, metadata) #2 | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @webfn(%struct.mg_connection* %0, i32 %1, i8* %2, i8* %3) #0 !dbg !166 { | |
| %5 = alloca %struct.mg_connection*, align 8 | |
| %6 = alloca i32, align 4 | |
| %7 = alloca i8*, align 8 | |
| %8 = alloca i8*, align 8 | |
| %9 = alloca %struct.mg_tls_opts, align 8 | |
| %10 = alloca %struct.mg_http_message*, align 8 | |
| %11 = alloca %struct.mg_http_serve_opts, align 8 | |
| store %struct.mg_connection* %0, %struct.mg_connection** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.mg_connection** %5, metadata !4240, metadata !DIExpression()), !dbg !4241 | |
| store i32 %1, i32* %6, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !4242, metadata !DIExpression()), !dbg !4243 | |
| store i8* %2, i8** %7, align 8 | |
| call void @llvm.dbg.declare(metadata i8** %7, metadata !4244, metadata !DIExpression()), !dbg !4245 | |
| store i8* %3, i8** %8, align 8 | |
| call void @llvm.dbg.declare(metadata i8** %8, metadata !4246, metadata !DIExpression()), !dbg !4247 | |
| %12 = load i32, i32* %6, align 4, !dbg !4248 | |
| %13 = icmp eq i32 %12, 5, !dbg !4250 | |
| br i1 %13, label %14, label %22, !dbg !4251 | |
| 14: ; preds = %4 | |
| %15 = load i8*, i8** %8, align 8, !dbg !4252 | |
| %16 = icmp ne i8* %15, null, !dbg !4253 | |
| br i1 %16, label %17, label %22, !dbg !4254 | |
| 17: ; preds = %14 | |
| call void @llvm.dbg.declare(metadata %struct.mg_tls_opts* %9, metadata !4255, metadata !DIExpression()), !dbg !4279 | |
| %18 = bitcast %struct.mg_tls_opts* %9 to i8*, !dbg !4279 | |
| call void @llvm.memset.p0i8.i64(i8* align 8 %18, i8 0, i64 64, i1 false), !dbg !4279 | |
| %19 = bitcast i8* %18 to %struct.mg_tls_opts*, !dbg !4279 | |
| %20 = getelementptr inbounds %struct.mg_tls_opts, %struct.mg_tls_opts* %19, i32 0, i32 2, !dbg !4279 | |
| store i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.22, i32 0, i32 0), i8** %20, align 8, !dbg !4279 | |
| %21 = getelementptr inbounds %struct.mg_tls_opts, %struct.mg_tls_opts* %19, i32 0, i32 3, !dbg !4279 | |
| store i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.23, i32 0, i32 0), i8** %21, align 8, !dbg !4279 | |
| br label %63, !dbg !4280 | |
| 22: ; preds = %14, %4 | |
| %23 = load i32, i32* %6, align 4, !dbg !4281 | |
| %24 = icmp eq i32 %23, 9, !dbg !4283 | |
| br i1 %24, label %25, label %62, !dbg !4284 | |
| 25: ; preds = %22 | |
| call void @llvm.dbg.declare(metadata %struct.mg_http_message** %10, metadata !4285, metadata !DIExpression()), !dbg !4287 | |
| %26 = load i8*, i8** %7, align 8, !dbg !4288 | |
| %27 = bitcast i8* %26 to %struct.mg_http_message*, !dbg !4289 | |
| store %struct.mg_http_message* %27, %struct.mg_http_message** %10, align 8, !dbg !4287 | |
| %28 = load %struct.mg_http_message*, %struct.mg_http_message** %10, align 8, !dbg !4290 | |
| %29 = call zeroext i1 @mg_http_match_uri(%struct.mg_http_message* %28, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.24, i64 0, i64 0)), !dbg !4292 | |
| br i1 %29, label %30, label %38, !dbg !4293 | |
| 30: ; preds = %25 | |
| %31 = load %struct._IO_FILE*, %struct._IO_FILE** @stderr, align 8, !dbg !4294 | |
| %32 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %31, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.25, i64 0, i64 0)), !dbg !4296 | |
| %33 = load %struct.mg_connection*, %struct.mg_connection** %5, align 8, !dbg !4297 | |
| %34 = load %struct.mg_http_message*, %struct.mg_http_message** %10, align 8, !dbg !4298 | |
| call void (%struct.mg_connection*, %struct.mg_http_message*, i8*, ...) @mg_ws_upgrade(%struct.mg_connection* %33, %struct.mg_http_message* %34, i8* null), !dbg !4299 | |
| %35 = load %struct.mg_connection*, %struct.mg_connection** %5, align 8, !dbg !4300 | |
| %36 = getelementptr inbounds %struct.mg_connection, %struct.mg_connection* %35, i32 0, i32 12, !dbg !4301 | |
| %37 = getelementptr inbounds [50 x i8], [50 x i8]* %36, i64 0, i64 0, !dbg !4300 | |
| store i8 83, i8* %37, align 8, !dbg !4302 | |
| br label %61, !dbg !4303 | |
| 38: ; preds = %25 | |
| %39 = load %struct.mg_http_message*, %struct.mg_http_message** %10, align 8, !dbg !4304 | |
| %40 = call zeroext i1 @mg_http_match_uri(%struct.mg_http_message* %39, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.26, i64 0, i64 0)), !dbg !4306 | |
| br i1 %40, label %41, label %45, !dbg !4307 | |
| 41: ; preds = %38 | |
| %42 = load %struct.mg_connection*, %struct.mg_connection** %5, align 8, !dbg !4308 | |
| %43 = load %struct.mg_http_message*, %struct.mg_http_message** %10, align 8, !dbg !4310 | |
| %44 = call i32 @handle_camera_command(%struct.mg_connection* %42, %struct.mg_http_message* %43), !dbg !4311 | |
| br label %60, !dbg !4312 | |
| 45: ; preds = %38 | |
| %46 = load %struct.mg_http_message*, %struct.mg_http_message** %10, align 8, !dbg !4313 | |
| %47 = call zeroext i1 @mg_http_match_uri(%struct.mg_http_message* %46, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.27, i64 0, i64 0)), !dbg !4315 | |
| br i1 %47, label %48, label %52, !dbg !4316 | |
| 48: ; preds = %45 | |
| %49 = load %struct.mg_connection*, %struct.mg_connection** %5, align 8, !dbg !4317 | |
| %50 = load %struct.mg_http_message*, %struct.mg_http_message** %10, align 8, !dbg !4319 | |
| %51 = call i32 @handle_get_metadata(%struct.mg_connection* %49, %struct.mg_http_message* %50), !dbg !4320 | |
| br label %59, !dbg !4321 | |
| 52: ; preds = %45 | |
| call void @llvm.dbg.declare(metadata %struct.mg_http_serve_opts* %11, metadata !4322, metadata !DIExpression()), !dbg !4332 | |
| %53 = bitcast %struct.mg_http_serve_opts* %11 to i8*, !dbg !4332 | |
| call void @llvm.memset.p0i8.i64(i8* align 8 %53, i8 0, i64 48, i1 false), !dbg !4332 | |
| %54 = getelementptr inbounds %struct.mg_http_serve_opts, %struct.mg_http_serve_opts* %11, i32 0, i32 0, !dbg !4333 | |
| %55 = load i8*, i8** @webfn.s_web_root, align 8, !dbg !4334 | |
| store i8* %55, i8** %54, align 8, !dbg !4333 | |
| %56 = load %struct.mg_connection*, %struct.mg_connection** %5, align 8, !dbg !4335 | |
| %57 = load i8*, i8** %7, align 8, !dbg !4336 | |
| %58 = bitcast i8* %57 to %struct.mg_http_message*, !dbg !4336 | |
| call void @mg_http_serve_dir(%struct.mg_connection* %56, %struct.mg_http_message* %58, %struct.mg_http_serve_opts* %11), !dbg !4337 | |
| br label %59 | |
| 59: ; preds = %52, %48 | |
| br label %60 | |
| 60: ; preds = %59, %41 | |
| br label %61 | |
| 61: ; preds = %60, %30 | |
| br label %62, !dbg !4338 | |
| 62: ; preds = %61, %22 | |
| br label %63 | |
| 63: ; preds = %62, %17 | |
| ret void, !dbg !4339 | |
| } | |
| ; Function Attrs: argmemonly nounwind willreturn | |
| declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1 immarg) #3 | |
| ; Function Attrs: nounwind willreturn | |
| declare void @llvm.var.annotation(i8*, i8*, i8*, i32) #4 | |
| ; Function Attrs: nounwind | |
| declare dso_local void @free(i8*) #5 | |
| ; Function Attrs: argmemonly nounwind willreturn | |
| declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #3 | |
| ; Function Attrs: nounwind readonly | |
| declare dso_local double @atof(i8*) #6 | |
| ; Function Attrs: nounwind readonly | |
| declare dso_local i64 @strlen(i8*) #6 | |
| ; Function Attrs: nounwind readonly | |
| declare dso_local i32 @atoi(i8*) #6 | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i32 @main(i32 %0, i8** %1) #0 !dbg !4340 { | |
| %3 = alloca i32, align 4 | |
| %4 = alloca i32, align 4 | |
| %5 = alloca i8**, align 8 | |
| store i32 0, i32* %3, align 4 | |
| store i32 %0, i32* %4, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %4, metadata !4344, metadata !DIExpression()), !dbg !4345 | |
| store i8** %1, i8*** %5, align 8 | |
| call void @llvm.dbg.declare(metadata i8*** %5, metadata !4346, metadata !DIExpression()), !dbg !4347 | |
| %6 = call i32 @websrv_main(), !dbg !4348 | |
| ret i32 %6, !dbg !4349 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @addAngles(double %0, double %1) #0 !dbg !4350 { | |
| %3 = alloca double, align 8 | |
| %4 = alloca double, align 8 | |
| store double %0, double* %3, align 8 | |
| call void @llvm.dbg.declare(metadata double* %3, metadata !4353, metadata !DIExpression()), !dbg !4354 | |
| store double %1, double* %4, align 8 | |
| call void @llvm.dbg.declare(metadata double* %4, metadata !4355, metadata !DIExpression()), !dbg !4356 | |
| %5 = load double, double* %3, align 8, !dbg !4357 | |
| %6 = load double, double* %4, align 8, !dbg !4358 | |
| %7 = fadd double %5, %6, !dbg !4359 | |
| %8 = call double @wrapAngle(double %7), !dbg !4360 | |
| ret double %8, !dbg !4361 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @wrapAngle(double %0) #0 !dbg !4362 { | |
| %2 = alloca double, align 8 | |
| store double %0, double* %2, align 8 | |
| call void @llvm.dbg.declare(metadata double* %2, metadata !4365, metadata !DIExpression()), !dbg !4366 | |
| %3 = load double, double* %2, align 8, !dbg !4367 | |
| %4 = fcmp ogt double %3, 0x400921FB54442D18, !dbg !4369 | |
| br i1 %4, label %5, label %8, !dbg !4370 | |
| 5: ; preds = %1 | |
| %6 = load double, double* %2, align 8, !dbg !4371 | |
| %7 = fsub double %6, 0x401921FB54442D18, !dbg !4371 | |
| store double %7, double* %2, align 8, !dbg !4371 | |
| br label %15, !dbg !4372 | |
| 8: ; preds = %1 | |
| %9 = load double, double* %2, align 8, !dbg !4373 | |
| %10 = fcmp ole double %9, 0xC00921FB54442D18, !dbg !4375 | |
| br i1 %10, label %11, label %14, !dbg !4376 | |
| 11: ; preds = %8 | |
| %12 = load double, double* %2, align 8, !dbg !4377 | |
| %13 = fadd double %12, 0x401921FB54442D18, !dbg !4377 | |
| store double %13, double* %2, align 8, !dbg !4377 | |
| br label %14, !dbg !4378 | |
| 14: ; preds = %11, %8 | |
| br label %15 | |
| 15: ; preds = %14, %5 | |
| %16 = load double, double* %2, align 8, !dbg !4379 | |
| ret double %16, !dbg !4380 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @subtractAngles(double %0, double %1) #0 !dbg !4381 { | |
| %3 = alloca double, align 8 | |
| %4 = alloca double, align 8 | |
| store double %0, double* %3, align 8 | |
| call void @llvm.dbg.declare(metadata double* %3, metadata !4382, metadata !DIExpression()), !dbg !4383 | |
| store double %1, double* %4, align 8 | |
| call void @llvm.dbg.declare(metadata double* %4, metadata !4384, metadata !DIExpression()), !dbg !4385 | |
| %5 = load double, double* %3, align 8, !dbg !4386 | |
| %6 = load double, double* %4, align 8, !dbg !4387 | |
| %7 = fsub double %5, %6, !dbg !4388 | |
| %8 = call double @wrapAngle(double %7), !dbg !4389 | |
| ret double %8, !dbg !4390 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @wrapAngle90(double %0) #0 !dbg !4391 { | |
| %2 = alloca double, align 8 | |
| store double %0, double* %2, align 8 | |
| call void @llvm.dbg.declare(metadata double* %2, metadata !4392, metadata !DIExpression()), !dbg !4393 | |
| %3 = load double, double* %2, align 8, !dbg !4394 | |
| %4 = fcmp ogt double %3, 0x3FF921FB54442D18, !dbg !4396 | |
| br i1 %4, label %5, label %8, !dbg !4397 | |
| 5: ; preds = %1 | |
| %6 = load double, double* %2, align 8, !dbg !4398 | |
| %7 = fsub double %6, 0x401921FB54442D18, !dbg !4398 | |
| store double %7, double* %2, align 8, !dbg !4398 | |
| br label %15, !dbg !4399 | |
| 8: ; preds = %1 | |
| %9 = load double, double* %2, align 8, !dbg !4400 | |
| %10 = fcmp ole double %9, 0xC012D97C7F3321D2, !dbg !4402 | |
| br i1 %10, label %11, label %14, !dbg !4403 | |
| 11: ; preds = %8 | |
| %12 = load double, double* %2, align 8, !dbg !4404 | |
| %13 = fadd double %12, 0x401921FB54442D18, !dbg !4404 | |
| store double %13, double* %2, align 8, !dbg !4404 | |
| br label %14, !dbg !4405 | |
| 14: ; preds = %11, %8 | |
| br label %15 | |
| 15: ; preds = %14, %5 | |
| %16 = load double, double* %2, align 8, !dbg !4406 | |
| ret double %16, !dbg !4407 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @firstOrderFilter(double %0, double %1, double %2, double %3) #0 !dbg !4408 { | |
| %5 = alloca double, align 8 | |
| %6 = alloca double, align 8 | |
| %7 = alloca double, align 8 | |
| %8 = alloca double, align 8 | |
| store double %0, double* %5, align 8 | |
| call void @llvm.dbg.declare(metadata double* %5, metadata !4411, metadata !DIExpression()), !dbg !4412 | |
| store double %1, double* %6, align 8 | |
| call void @llvm.dbg.declare(metadata double* %6, metadata !4413, metadata !DIExpression()), !dbg !4414 | |
| store double %2, double* %7, align 8 | |
| call void @llvm.dbg.declare(metadata double* %7, metadata !4415, metadata !DIExpression()), !dbg !4416 | |
| store double %3, double* %8, align 8 | |
| call void @llvm.dbg.declare(metadata double* %8, metadata !4417, metadata !DIExpression()), !dbg !4418 | |
| %9 = load double, double* %5, align 8, !dbg !4419 | |
| %10 = load double, double* %8, align 8, !dbg !4420 | |
| %11 = load double, double* %6, align 8, !dbg !4421 | |
| %12 = load double, double* %5, align 8, !dbg !4422 | |
| %13 = fsub double %11, %12, !dbg !4423 | |
| %14 = fmul double %10, %13, !dbg !4424 | |
| %15 = load double, double* %7, align 8, !dbg !4425 | |
| %16 = load double, double* %8, align 8, !dbg !4426 | |
| %17 = fadd double %15, %16, !dbg !4427 | |
| %18 = fdiv double %14, %17, !dbg !4428 | |
| %19 = fadd double %9, %18, !dbg !4429 | |
| ret double %19, !dbg !4430 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @addAnglesf(float %0, float %1) #0 !dbg !4431 { | |
| %3 = alloca float, align 4 | |
| %4 = alloca float, align 4 | |
| store float %0, float* %3, align 4 | |
| call void @llvm.dbg.declare(metadata float* %3, metadata !4434, metadata !DIExpression()), !dbg !4435 | |
| store float %1, float* %4, align 4 | |
| call void @llvm.dbg.declare(metadata float* %4, metadata !4436, metadata !DIExpression()), !dbg !4437 | |
| %5 = load float, float* %3, align 4, !dbg !4438 | |
| %6 = load float, float* %4, align 4, !dbg !4439 | |
| %7 = fadd float %5, %6, !dbg !4440 | |
| %8 = call float @wrapAnglef(float %7), !dbg !4441 | |
| ret float %8, !dbg !4442 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @wrapAnglef(float %0) #0 !dbg !4443 { | |
| %2 = alloca float, align 4 | |
| store float %0, float* %2, align 4 | |
| call void @llvm.dbg.declare(metadata float* %2, metadata !4444, metadata !DIExpression()), !dbg !4445 | |
| %3 = load float, float* %2, align 4, !dbg !4446 | |
| %4 = fcmp ogt float %3, 0x400921FB60000000, !dbg !4448 | |
| br i1 %4, label %5, label %8, !dbg !4449 | |
| 5: ; preds = %1 | |
| %6 = load float, float* %2, align 4, !dbg !4450 | |
| %7 = fsub float %6, 0x401921FB60000000, !dbg !4450 | |
| store float %7, float* %2, align 4, !dbg !4450 | |
| br label %15, !dbg !4451 | |
| 8: ; preds = %1 | |
| %9 = load float, float* %2, align 4, !dbg !4452 | |
| %10 = fcmp ole float %9, 0xC00921FB60000000, !dbg !4454 | |
| br i1 %10, label %11, label %14, !dbg !4455 | |
| 11: ; preds = %8 | |
| %12 = load float, float* %2, align 4, !dbg !4456 | |
| %13 = fadd float %12, 0x401921FB60000000, !dbg !4456 | |
| store float %13, float* %2, align 4, !dbg !4456 | |
| br label %14, !dbg !4457 | |
| 14: ; preds = %11, %8 | |
| br label %15 | |
| 15: ; preds = %14, %5 | |
| %16 = load float, float* %2, align 4, !dbg !4458 | |
| ret float %16, !dbg !4459 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @subtractAnglesf(float %0, float %1) #0 !dbg !4460 { | |
| %3 = alloca float, align 4 | |
| %4 = alloca float, align 4 | |
| store float %0, float* %3, align 4 | |
| call void @llvm.dbg.declare(metadata float* %3, metadata !4461, metadata !DIExpression()), !dbg !4462 | |
| store float %1, float* %4, align 4 | |
| call void @llvm.dbg.declare(metadata float* %4, metadata !4463, metadata !DIExpression()), !dbg !4464 | |
| %5 = load float, float* %3, align 4, !dbg !4465 | |
| %6 = load float, float* %4, align 4, !dbg !4466 | |
| %7 = fsub float %5, %6, !dbg !4467 | |
| %8 = call float @wrapAnglef(float %7), !dbg !4468 | |
| ret float %8, !dbg !4469 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @wrapAngle90f(float %0) #0 !dbg !4470 { | |
| %2 = alloca float, align 4 | |
| store float %0, float* %2, align 4 | |
| call void @llvm.dbg.declare(metadata float* %2, metadata !4471, metadata !DIExpression()), !dbg !4472 | |
| %3 = load float, float* %2, align 4, !dbg !4473 | |
| %4 = fcmp ogt float %3, 0x3FF921FB60000000, !dbg !4475 | |
| br i1 %4, label %5, label %8, !dbg !4476 | |
| 5: ; preds = %1 | |
| %6 = load float, float* %2, align 4, !dbg !4477 | |
| %7 = fsub float %6, 0x401921FB60000000, !dbg !4477 | |
| store float %7, float* %2, align 4, !dbg !4477 | |
| br label %15, !dbg !4478 | |
| 8: ; preds = %1 | |
| %9 = load float, float* %2, align 4, !dbg !4479 | |
| %10 = fcmp ole float %9, 0xC012D97C80000000, !dbg !4481 | |
| br i1 %10, label %11, label %14, !dbg !4482 | |
| 11: ; preds = %8 | |
| %12 = load float, float* %2, align 4, !dbg !4483 | |
| %13 = fadd float %12, 0x401921FB60000000, !dbg !4483 | |
| store float %13, float* %2, align 4, !dbg !4483 | |
| br label %14, !dbg !4484 | |
| 14: ; preds = %11, %8 | |
| br label %15 | |
| 15: ; preds = %14, %5 | |
| %16 = load float, float* %2, align 4, !dbg !4485 | |
| ret float %16, !dbg !4486 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @wrapAngle360f(float %0) #0 !dbg !4487 { | |
| %2 = alloca float, align 4 | |
| store float %0, float* %2, align 4 | |
| call void @llvm.dbg.declare(metadata float* %2, metadata !4488, metadata !DIExpression()), !dbg !4489 | |
| %3 = load float, float* %2, align 4, !dbg !4490 | |
| %4 = fcmp olt float %3, 0.000000e+00, !dbg !4492 | |
| br i1 %4, label %5, label %8, !dbg !4493 | |
| 5: ; preds = %1 | |
| %6 = load float, float* %2, align 4, !dbg !4494 | |
| %7 = fadd float %6, 0x401921FB60000000, !dbg !4494 | |
| store float %7, float* %2, align 4, !dbg !4494 | |
| br label %8, !dbg !4495 | |
| 8: ; preds = %5, %1 | |
| %9 = load float, float* %2, align 4, !dbg !4496 | |
| ret float %9, !dbg !4497 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @fastSin(float %0) #0 !dbg !185 { | |
| %2 = alloca float, align 4 | |
| %3 = alloca float, align 4 | |
| store float %0, float* %2, align 4 | |
| call void @llvm.dbg.declare(metadata float* %2, metadata !4498, metadata !DIExpression()), !dbg !4499 | |
| call void @llvm.dbg.declare(metadata float* %3, metadata !4500, metadata !DIExpression()), !dbg !4501 | |
| %4 = load float, float* %2, align 4, !dbg !4502 | |
| %5 = call float @wrapAnglef(float %4), !dbg !4503 | |
| store float %5, float* %2, align 4, !dbg !4504 | |
| %6 = load float, float* %2, align 4, !dbg !4505 | |
| %7 = load float, float* %2, align 4, !dbg !4506 | |
| %8 = fmul float %6, %7, !dbg !4507 | |
| store float %8, float* %3, align 4, !dbg !4508 | |
| %9 = load float, float* %2, align 4, !dbg !4509 | |
| %10 = load float, float* getelementptr inbounds ([4 x float], [4 x float]* @fastSin.A, i64 0, i64 0), align 16, !dbg !4510 | |
| %11 = load float, float* %3, align 4, !dbg !4511 | |
| %12 = fmul float %10, %11, !dbg !4512 | |
| %13 = load float, float* getelementptr inbounds ([4 x float], [4 x float]* @fastSin.A, i64 0, i64 1), align 4, !dbg !4513 | |
| %14 = load float, float* %3, align 4, !dbg !4514 | |
| %15 = fmul float %13, %14, !dbg !4515 | |
| %16 = load float, float* getelementptr inbounds ([4 x float], [4 x float]* @fastSin.A, i64 0, i64 2), align 8, !dbg !4516 | |
| %17 = load float, float* %3, align 4, !dbg !4517 | |
| %18 = fmul float %16, %17, !dbg !4518 | |
| %19 = load float, float* getelementptr inbounds ([4 x float], [4 x float]* @fastSin.A, i64 0, i64 3), align 4, !dbg !4519 | |
| %20 = load float, float* %3, align 4, !dbg !4520 | |
| %21 = fmul float %19, %20, !dbg !4521 | |
| %22 = fsub float 1.000000e+00, %21, !dbg !4522 | |
| %23 = fmul float %18, %22, !dbg !4523 | |
| %24 = fsub float 1.000000e+00, %23, !dbg !4524 | |
| %25 = fmul float %15, %24, !dbg !4525 | |
| %26 = fsub float 1.000000e+00, %25, !dbg !4526 | |
| %27 = fmul float %12, %26, !dbg !4527 | |
| %28 = fsub float 1.000000e+00, %27, !dbg !4528 | |
| %29 = fmul float %9, %28, !dbg !4529 | |
| ret float %29, !dbg !4530 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @fastCos(float %0) #0 !dbg !195 { | |
| %2 = alloca float, align 4 | |
| %3 = alloca float, align 4 | |
| store float %0, float* %2, align 4 | |
| call void @llvm.dbg.declare(metadata float* %2, metadata !4531, metadata !DIExpression()), !dbg !4532 | |
| call void @llvm.dbg.declare(metadata float* %3, metadata !4533, metadata !DIExpression()), !dbg !4534 | |
| %4 = load float, float* %2, align 4, !dbg !4535 | |
| %5 = call float @wrapAnglef(float %4), !dbg !4536 | |
| store float %5, float* %2, align 4, !dbg !4537 | |
| %6 = load float, float* %2, align 4, !dbg !4538 | |
| %7 = load float, float* %2, align 4, !dbg !4539 | |
| %8 = fmul float %6, %7, !dbg !4540 | |
| store float %8, float* %3, align 4, !dbg !4541 | |
| %9 = load float, float* getelementptr inbounds ([5 x float], [5 x float]* @fastCos.A, i64 0, i64 0), align 16, !dbg !4542 | |
| %10 = load float, float* %3, align 4, !dbg !4543 | |
| %11 = fmul float %9, %10, !dbg !4544 | |
| %12 = load float, float* getelementptr inbounds ([5 x float], [5 x float]* @fastCos.A, i64 0, i64 1), align 4, !dbg !4545 | |
| %13 = load float, float* %3, align 4, !dbg !4546 | |
| %14 = fmul float %12, %13, !dbg !4547 | |
| %15 = load float, float* getelementptr inbounds ([5 x float], [5 x float]* @fastCos.A, i64 0, i64 2), align 8, !dbg !4548 | |
| %16 = load float, float* %3, align 4, !dbg !4549 | |
| %17 = fmul float %15, %16, !dbg !4550 | |
| %18 = load float, float* getelementptr inbounds ([5 x float], [5 x float]* @fastCos.A, i64 0, i64 3), align 4, !dbg !4551 | |
| %19 = load float, float* %3, align 4, !dbg !4552 | |
| %20 = fmul float %18, %19, !dbg !4553 | |
| %21 = load float, float* getelementptr inbounds ([5 x float], [5 x float]* @fastCos.A, i64 0, i64 4), align 16, !dbg !4554 | |
| %22 = load float, float* %3, align 4, !dbg !4555 | |
| %23 = fmul float %21, %22, !dbg !4556 | |
| %24 = fsub float 1.000000e+00, %23, !dbg !4557 | |
| %25 = fmul float %20, %24, !dbg !4558 | |
| %26 = fsub float 1.000000e+00, %25, !dbg !4559 | |
| %27 = fmul float %17, %26, !dbg !4560 | |
| %28 = fsub float 1.000000e+00, %27, !dbg !4561 | |
| %29 = fmul float %14, %28, !dbg !4562 | |
| %30 = fsub float 1.000000e+00, %29, !dbg !4563 | |
| %31 = fmul float %11, %30, !dbg !4564 | |
| %32 = fsub float 1.000000e+00, %31, !dbg !4565 | |
| ret float %32, !dbg !4566 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @fastISqrt(float %0) #0 !dbg !4567 { | |
| %2 = alloca float, align 4 | |
| %3 = alloca %union.anon, align 4 | |
| store float %0, float* %2, align 4 | |
| call void @llvm.dbg.declare(metadata float* %2, metadata !4568, metadata !DIExpression()), !dbg !4569 | |
| call void @llvm.dbg.declare(metadata %union.anon* %3, metadata !4570, metadata !DIExpression()), !dbg !4575 | |
| %4 = load float, float* %2, align 4, !dbg !4576 | |
| %5 = bitcast %union.anon* %3 to float*, !dbg !4577 | |
| store float %4, float* %5, align 4, !dbg !4578 | |
| %6 = bitcast %union.anon* %3 to i32*, !dbg !4579 | |
| %7 = load i32, i32* %6, align 4, !dbg !4579 | |
| %8 = ashr i32 %7, 1, !dbg !4580 | |
| %9 = sext i32 %8 to i64, !dbg !4581 | |
| %10 = sub nsw i64 1597463007, %9, !dbg !4582 | |
| %11 = trunc i64 %10 to i32, !dbg !4583 | |
| %12 = bitcast %union.anon* %3 to i32*, !dbg !4584 | |
| store i32 %11, i32* %12, align 4, !dbg !4585 | |
| %13 = bitcast %union.anon* %3 to float*, !dbg !4586 | |
| %14 = load float, float* %13, align 4, !dbg !4586 | |
| %15 = load float, float* %2, align 4, !dbg !4587 | |
| %16 = fmul float 5.000000e-01, %15, !dbg !4588 | |
| %17 = bitcast %union.anon* %3 to float*, !dbg !4589 | |
| %18 = load float, float* %17, align 4, !dbg !4589 | |
| %19 = fmul float %16, %18, !dbg !4590 | |
| %20 = bitcast %union.anon* %3 to float*, !dbg !4591 | |
| %21 = load float, float* %20, align 4, !dbg !4591 | |
| %22 = fmul float %19, %21, !dbg !4592 | |
| %23 = fsub float 1.500000e+00, %22, !dbg !4593 | |
| %24 = fmul float %14, %23, !dbg !4594 | |
| ret float %24, !dbg !4595 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @fastSqrt(float %0) #0 !dbg !4596 { | |
| %2 = alloca float, align 4 | |
| store float %0, float* %2, align 4 | |
| call void @llvm.dbg.declare(metadata float* %2, metadata !4597, metadata !DIExpression()), !dbg !4598 | |
| %3 = load float, float* %2, align 4, !dbg !4599 | |
| %4 = load float, float* %2, align 4, !dbg !4600 | |
| %5 = call float @fastISqrt(float %4), !dbg !4601 | |
| %6 = fmul float %3, %5, !dbg !4602 | |
| ret float %6, !dbg !4603 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @firstOrderFilterf(float %0, float %1, float %2, float %3) #0 !dbg !4604 { | |
| %5 = alloca float, align 4 | |
| %6 = alloca float, align 4 | |
| %7 = alloca float, align 4 | |
| %8 = alloca float, align 4 | |
| store float %0, float* %5, align 4 | |
| call void @llvm.dbg.declare(metadata float* %5, metadata !4607, metadata !DIExpression()), !dbg !4608 | |
| store float %1, float* %6, align 4 | |
| call void @llvm.dbg.declare(metadata float* %6, metadata !4609, metadata !DIExpression()), !dbg !4610 | |
| store float %2, float* %7, align 4 | |
| call void @llvm.dbg.declare(metadata float* %7, metadata !4611, metadata !DIExpression()), !dbg !4612 | |
| store float %3, float* %8, align 4 | |
| call void @llvm.dbg.declare(metadata float* %8, metadata !4613, metadata !DIExpression()), !dbg !4614 | |
| %9 = load float, float* %5, align 4, !dbg !4615 | |
| %10 = load float, float* %8, align 4, !dbg !4616 | |
| %11 = load float, float* %6, align 4, !dbg !4617 | |
| %12 = load float, float* %5, align 4, !dbg !4618 | |
| %13 = fsub float %11, %12, !dbg !4619 | |
| %14 = fmul float %10, %13, !dbg !4620 | |
| %15 = load float, float* %7, align 4, !dbg !4621 | |
| %16 = load float, float* %8, align 4, !dbg !4622 | |
| %17 = fadd float %15, %16, !dbg !4623 | |
| %18 = fdiv float %14, %17, !dbg !4624 | |
| %19 = fadd float %9, %18, !dbg !4625 | |
| ret float %19, !dbg !4626 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @rateOfChangeLimitf(float %0, float %1, float %2, float %3) #0 !dbg !4627 { | |
| %5 = alloca float, align 4 | |
| %6 = alloca float, align 4 | |
| %7 = alloca float, align 4 | |
| %8 = alloca float, align 4 | |
| %9 = alloca float, align 4 | |
| %10 = alloca float, align 4 | |
| %11 = alloca float, align 4 | |
| store float %0, float* %6, align 4 | |
| call void @llvm.dbg.declare(metadata float* %6, metadata !4628, metadata !DIExpression()), !dbg !4629 | |
| store float %1, float* %7, align 4 | |
| call void @llvm.dbg.declare(metadata float* %7, metadata !4630, metadata !DIExpression()), !dbg !4631 | |
| store float %2, float* %8, align 4 | |
| call void @llvm.dbg.declare(metadata float* %8, metadata !4632, metadata !DIExpression()), !dbg !4633 | |
| store float %3, float* %9, align 4 | |
| call void @llvm.dbg.declare(metadata float* %9, metadata !4634, metadata !DIExpression()), !dbg !4635 | |
| call void @llvm.dbg.declare(metadata float* %10, metadata !4636, metadata !DIExpression()), !dbg !4637 | |
| call void @llvm.dbg.declare(metadata float* %11, metadata !4638, metadata !DIExpression()), !dbg !4639 | |
| %12 = load float, float* %9, align 4, !dbg !4640 | |
| %13 = load float, float* %8, align 4, !dbg !4641 | |
| %14 = fmul float %12, %13, !dbg !4642 | |
| store float %14, float* %11, align 4, !dbg !4639 | |
| %15 = load float, float* %11, align 4, !dbg !4643 | |
| %16 = fcmp ole float %15, 0.000000e+00, !dbg !4645 | |
| br i1 %16, label %17, label %19, !dbg !4646 | |
| 17: ; preds = %4 | |
| %18 = load float, float* %7, align 4, !dbg !4647 | |
| store float %18, float* %5, align 4, !dbg !4648 | |
| br label %41, !dbg !4648 | |
| 19: ; preds = %4 | |
| %20 = load float, float* %7, align 4, !dbg !4649 | |
| %21 = load float, float* %6, align 4, !dbg !4650 | |
| %22 = fsub float %20, %21, !dbg !4651 | |
| store float %22, float* %10, align 4, !dbg !4652 | |
| %23 = load float, float* %10, align 4, !dbg !4653 | |
| %24 = load float, float* %11, align 4, !dbg !4655 | |
| %25 = fcmp ogt float %23, %24, !dbg !4656 | |
| br i1 %25, label %26, label %30, !dbg !4657 | |
| 26: ; preds = %19 | |
| %27 = load float, float* %6, align 4, !dbg !4658 | |
| %28 = load float, float* %11, align 4, !dbg !4659 | |
| %29 = fadd float %27, %28, !dbg !4660 | |
| store float %29, float* %5, align 4, !dbg !4661 | |
| br label %41, !dbg !4661 | |
| 30: ; preds = %19 | |
| %31 = load float, float* %10, align 4, !dbg !4662 | |
| %32 = load float, float* %11, align 4, !dbg !4664 | |
| %33 = fneg float %32, !dbg !4665 | |
| %34 = fcmp olt float %31, %33, !dbg !4666 | |
| br i1 %34, label %35, label %39, !dbg !4667 | |
| 35: ; preds = %30 | |
| %36 = load float, float* %6, align 4, !dbg !4668 | |
| %37 = load float, float* %11, align 4, !dbg !4669 | |
| %38 = fsub float %36, %37, !dbg !4670 | |
| store float %38, float* %5, align 4, !dbg !4671 | |
| br label %41, !dbg !4671 | |
| 39: ; preds = %30 | |
| %40 = load float, float* %7, align 4, !dbg !4672 | |
| store float %40, float* %5, align 4, !dbg !4673 | |
| br label %41, !dbg !4673 | |
| 41: ; preds = %39, %35, %26, %17 | |
| %42 = load float, float* %5, align 4, !dbg !4674 | |
| ret float %42, !dbg !4674 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @computeDateAndTimeFromWeekAndItow(i16 zeroext %0, i32 %1, i8 zeroext %2, i16* %3, i8* %4, i8* %5, i8* %6, i8* %7, i8* %8) #0 !dbg !4675 { | |
| %10 = alloca i16, align 2 | |
| %11 = alloca i32, align 4 | |
| %12 = alloca i8, align 1 | |
| %13 = alloca i16*, align 8 | |
| %14 = alloca i8*, align 8 | |
| %15 = alloca i8*, align 8 | |
| %16 = alloca i8*, align 8 | |
| %17 = alloca i8*, align 8 | |
| %18 = alloca i8*, align 8 | |
| store i16 %0, i16* %10, align 2 | |
| call void @llvm.dbg.declare(metadata i16* %10, metadata !4678, metadata !DIExpression()), !dbg !4679 | |
| store i32 %1, i32* %11, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %11, metadata !4680, metadata !DIExpression()), !dbg !4681 | |
| store i8 %2, i8* %12, align 1 | |
| call void @llvm.dbg.declare(metadata i8* %12, metadata !4682, metadata !DIExpression()), !dbg !4683 | |
| store i16* %3, i16** %13, align 8 | |
| call void @llvm.dbg.declare(metadata i16** %13, metadata !4684, metadata !DIExpression()), !dbg !4685 | |
| store i8* %4, i8** %14, align 8 | |
| call void @llvm.dbg.declare(metadata i8** %14, metadata !4686, metadata !DIExpression()), !dbg !4687 | |
| store i8* %5, i8** %15, align 8 | |
| call void @llvm.dbg.declare(metadata i8** %15, metadata !4688, metadata !DIExpression()), !dbg !4689 | |
| store i8* %6, i8** %16, align 8 | |
| call void @llvm.dbg.declare(metadata i8** %16, metadata !4690, metadata !DIExpression()), !dbg !4691 | |
| store i8* %7, i8** %17, align 8 | |
| call void @llvm.dbg.declare(metadata i8** %17, metadata !4692, metadata !DIExpression()), !dbg !4693 | |
| store i8* %8, i8** %18, align 8 | |
| call void @llvm.dbg.declare(metadata i8** %18, metadata !4694, metadata !DIExpression()), !dbg !4695 | |
| %19 = load i32, i32* %11, align 4, !dbg !4696 | |
| %20 = load i8, i8* %12, align 1, !dbg !4698 | |
| %21 = zext i8 %20 to i32, !dbg !4698 | |
| %22 = mul i32 %21, 1000, !dbg !4699 | |
| %23 = icmp ult i32 %19, %22, !dbg !4700 | |
| br i1 %23, label %24, label %29, !dbg !4701 | |
| 24: ; preds = %9 | |
| %25 = load i16, i16* %10, align 2, !dbg !4702 | |
| %26 = add i16 %25, -1, !dbg !4702 | |
| store i16 %26, i16* %10, align 2, !dbg !4702 | |
| %27 = load i32, i32* %11, align 4, !dbg !4704 | |
| %28 = add i32 %27, 604800000, !dbg !4704 | |
| store i32 %28, i32* %11, align 4, !dbg !4704 | |
| br label %29, !dbg !4705 | |
| 29: ; preds = %24, %9 | |
| %30 = load i8, i8* %12, align 1, !dbg !4706 | |
| %31 = zext i8 %30 to i32, !dbg !4706 | |
| %32 = mul nsw i32 %31, 1000, !dbg !4707 | |
| %33 = load i32, i32* %11, align 4, !dbg !4708 | |
| %34 = sub i32 %33, %32, !dbg !4708 | |
| store i32 %34, i32* %11, align 4, !dbg !4708 | |
| %35 = load i16, i16* %10, align 2, !dbg !4709 | |
| %36 = load i32, i32* %11, align 4, !dbg !4710 | |
| %37 = load i16*, i16** %13, align 8, !dbg !4711 | |
| %38 = load i8*, i8** %14, align 8, !dbg !4712 | |
| %39 = load i8*, i8** %15, align 8, !dbg !4713 | |
| call void @computeDateFromWeekAndItow(i16 zeroext %35, i32 %36, i16* %37, i8* %38, i8* %39), !dbg !4714 | |
| %40 = load i32, i32* %11, align 4, !dbg !4715 | |
| %41 = load i8*, i8** %16, align 8, !dbg !4716 | |
| %42 = load i8*, i8** %17, align 8, !dbg !4717 | |
| %43 = load i8*, i8** %18, align 8, !dbg !4718 | |
| call void @computeTimeFromItow(i32 %40, i8* %41, i8* %42, i8* %43), !dbg !4719 | |
| ret void, !dbg !4720 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @computeDateFromWeekAndItow(i16 zeroext %0, i32 %1, i16* %2, i8* %3, i8* %4) #0 !dbg !4721 { | |
| %6 = alloca i16, align 2 | |
| %7 = alloca i32, align 4 | |
| %8 = alloca i16*, align 8 | |
| %9 = alloca i8*, align 8 | |
| %10 = alloca i8*, align 8 | |
| %11 = alloca i32, align 4 | |
| %12 = alloca i8, align 1 | |
| %13 = alloca i16*, align 8 | |
| %14 = alloca i16, align 2 | |
| %15 = alloca i16, align 2 | |
| %16 = alloca i32, align 4 | |
| store i16 %0, i16* %6, align 2 | |
| call void @llvm.dbg.declare(metadata i16* %6, metadata !4724, metadata !DIExpression()), !dbg !4725 | |
| store i32 %1, i32* %7, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !4726, metadata !DIExpression()), !dbg !4727 | |
| store i16* %2, i16** %8, align 8 | |
| call void @llvm.dbg.declare(metadata i16** %8, metadata !4728, metadata !DIExpression()), !dbg !4729 | |
| store i8* %3, i8** %9, align 8 | |
| call void @llvm.dbg.declare(metadata i8** %9, metadata !4730, metadata !DIExpression()), !dbg !4731 | |
| store i8* %4, i8** %10, align 8 | |
| call void @llvm.dbg.declare(metadata i8** %10, metadata !4732, metadata !DIExpression()), !dbg !4733 | |
| %17 = load i16, i16* %6, align 2, !dbg !4734 | |
| %18 = zext i16 %17 to i32, !dbg !4734 | |
| %19 = icmp sge i32 %18, 1669, !dbg !4736 | |
| br i1 %19, label %20, label %101, !dbg !4737 | |
| 20: ; preds = %5 | |
| call void @llvm.dbg.declare(metadata i32* %11, metadata !4738, metadata !DIExpression()), !dbg !4740 | |
| call void @llvm.dbg.declare(metadata i8* %12, metadata !4741, metadata !DIExpression()), !dbg !4742 | |
| call void @llvm.dbg.declare(metadata i16** %13, metadata !4743, metadata !DIExpression()), !dbg !4746 | |
| call void @llvm.dbg.declare(metadata i16* %14, metadata !4747, metadata !DIExpression()), !dbg !4748 | |
| call void @llvm.dbg.declare(metadata i16* %15, metadata !4749, metadata !DIExpression()), !dbg !4750 | |
| store i16 2012, i16* %15, align 2, !dbg !4750 | |
| call void @llvm.dbg.declare(metadata i32* %16, metadata !4751, metadata !DIExpression()), !dbg !4752 | |
| %21 = load i16, i16* %6, align 2, !dbg !4753 | |
| %22 = zext i16 %21 to i32, !dbg !4753 | |
| %23 = mul nsw i32 %22, 7, !dbg !4754 | |
| %24 = load i32, i32* %7, align 4, !dbg !4755 | |
| %25 = udiv i32 %24, 86400000, !dbg !4756 | |
| %26 = add i32 %23, %25, !dbg !4757 | |
| store i32 %26, i32* %16, align 4, !dbg !4752 | |
| %27 = load i32, i32* %16, align 4, !dbg !4758 | |
| %28 = sub i32 %27, 11683, !dbg !4758 | |
| store i32 %28, i32* %16, align 4, !dbg !4758 | |
| %29 = load i16, i16* %15, align 2, !dbg !4759 | |
| %30 = call i32 @isLeapYear(i16 zeroext %29), !dbg !4760 | |
| store i32 %30, i32* %11, align 4, !dbg !4761 | |
| %31 = load i32, i32* %11, align 4, !dbg !4762 | |
| %32 = icmp ne i32 %31, 0, !dbg !4762 | |
| br i1 %32, label %33, label %34, !dbg !4764 | |
| 33: ; preds = %20 | |
| store i16 366, i16* %14, align 2, !dbg !4765 | |
| br label %35, !dbg !4766 | |
| 34: ; preds = %20 | |
| store i16 365, i16* %14, align 2, !dbg !4767 | |
| br label %35 | |
| 35: ; preds = %34, %33 | |
| br label %36, !dbg !4768 | |
| 36: ; preds = %54, %35 | |
| %37 = load i32, i32* %16, align 4, !dbg !4769 | |
| %38 = load i16, i16* %14, align 2, !dbg !4770 | |
| %39 = zext i16 %38 to i32, !dbg !4770 | |
| %40 = icmp uge i32 %37, %39, !dbg !4771 | |
| br i1 %40, label %41, label %55, !dbg !4768 | |
| 41: ; preds = %36 | |
| %42 = load i16, i16* %14, align 2, !dbg !4772 | |
| %43 = zext i16 %42 to i32, !dbg !4772 | |
| %44 = load i32, i32* %16, align 4, !dbg !4774 | |
| %45 = sub i32 %44, %43, !dbg !4774 | |
| store i32 %45, i32* %16, align 4, !dbg !4774 | |
| %46 = load i16, i16* %15, align 2, !dbg !4775 | |
| %47 = add i16 %46, 1, !dbg !4775 | |
| store i16 %47, i16* %15, align 2, !dbg !4775 | |
| %48 = load i16, i16* %15, align 2, !dbg !4776 | |
| %49 = call i32 @isLeapYear(i16 zeroext %48), !dbg !4777 | |
| store i32 %49, i32* %11, align 4, !dbg !4778 | |
| %50 = load i32, i32* %11, align 4, !dbg !4779 | |
| %51 = icmp ne i32 %50, 0, !dbg !4779 | |
| br i1 %51, label %52, label %53, !dbg !4781 | |
| 52: ; preds = %41 | |
| store i16 366, i16* %14, align 2, !dbg !4782 | |
| br label %54, !dbg !4783 | |
| 53: ; preds = %41 | |
| store i16 365, i16* %14, align 2, !dbg !4784 | |
| br label %54 | |
| 54: ; preds = %53, %52 | |
| br label %36, !dbg !4768, !llvm.loop !4785 | |
| 55: ; preds = %36 | |
| %56 = load i16, i16* %15, align 2, !dbg !4787 | |
| %57 = load i16*, i16** %8, align 8, !dbg !4788 | |
| store i16 %56, i16* %57, align 2, !dbg !4789 | |
| %58 = load i32, i32* %11, align 4, !dbg !4790 | |
| %59 = icmp ne i32 %58, 0, !dbg !4790 | |
| br i1 %59, label %60, label %61, !dbg !4792 | |
| 60: ; preds = %55 | |
| store i16* getelementptr inbounds ([12 x i16], [12 x i16]* @month_day_leap, i64 0, i64 0), i16** %13, align 8, !dbg !4793 | |
| br label %62, !dbg !4794 | |
| 61: ; preds = %55 | |
| store i16* getelementptr inbounds ([12 x i16], [12 x i16]* @month_day_norm, i64 0, i64 0), i16** %13, align 8, !dbg !4795 | |
| br label %62 | |
| 62: ; preds = %61, %60 | |
| store i8 1, i8* %12, align 1, !dbg !4796 | |
| br label %63, !dbg !4798 | |
| 63: ; preds = %78, %62 | |
| %64 = load i8, i8* %12, align 1, !dbg !4799 | |
| %65 = zext i8 %64 to i32, !dbg !4799 | |
| %66 = icmp slt i32 %65, 12, !dbg !4801 | |
| br i1 %66, label %67, label %81, !dbg !4802 | |
| 67: ; preds = %63 | |
| %68 = load i32, i32* %16, align 4, !dbg !4803 | |
| %69 = load i16*, i16** %13, align 8, !dbg !4806 | |
| %70 = load i8, i8* %12, align 1, !dbg !4807 | |
| %71 = zext i8 %70 to i64, !dbg !4806 | |
| %72 = getelementptr inbounds i16, i16* %69, i64 %71, !dbg !4806 | |
| %73 = load i16, i16* %72, align 2, !dbg !4806 | |
| %74 = zext i16 %73 to i32, !dbg !4806 | |
| %75 = icmp ult i32 %68, %74, !dbg !4808 | |
| br i1 %75, label %76, label %77, !dbg !4809 | |
| 76: ; preds = %67 | |
| br label %81, !dbg !4810 | |
| 77: ; preds = %67 | |
| br label %78, !dbg !4811 | |
| 78: ; preds = %77 | |
| %79 = load i8, i8* %12, align 1, !dbg !4812 | |
| %80 = add i8 %79, 1, !dbg !4812 | |
| store i8 %80, i8* %12, align 1, !dbg !4812 | |
| br label %63, !dbg !4813, !llvm.loop !4814 | |
| 81: ; preds = %76, %63 | |
| %82 = load i8, i8* %12, align 1, !dbg !4816 | |
| %83 = add i8 %82, -1, !dbg !4816 | |
| store i8 %83, i8* %12, align 1, !dbg !4816 | |
| %84 = load i16*, i16** %13, align 8, !dbg !4817 | |
| %85 = load i8, i8* %12, align 1, !dbg !4818 | |
| %86 = zext i8 %85 to i64, !dbg !4817 | |
| %87 = getelementptr inbounds i16, i16* %84, i64 %86, !dbg !4817 | |
| %88 = load i16, i16* %87, align 2, !dbg !4817 | |
| %89 = zext i16 %88 to i32, !dbg !4817 | |
| %90 = load i32, i32* %16, align 4, !dbg !4819 | |
| %91 = sub i32 %90, %89, !dbg !4819 | |
| store i32 %91, i32* %16, align 4, !dbg !4819 | |
| %92 = load i32, i32* %16, align 4, !dbg !4820 | |
| %93 = add i32 %92, 1, !dbg !4821 | |
| %94 = trunc i32 %93 to i8, !dbg !4820 | |
| %95 = load i8*, i8** %10, align 8, !dbg !4822 | |
| store i8 %94, i8* %95, align 1, !dbg !4823 | |
| %96 = load i8, i8* %12, align 1, !dbg !4824 | |
| %97 = zext i8 %96 to i32, !dbg !4824 | |
| %98 = add nsw i32 %97, 1, !dbg !4825 | |
| %99 = trunc i32 %98 to i8, !dbg !4824 | |
| %100 = load i8*, i8** %9, align 8, !dbg !4826 | |
| store i8 %99, i8* %100, align 1, !dbg !4827 | |
| br label %105, !dbg !4828 | |
| 101: ; preds = %5 | |
| %102 = load i16*, i16** %8, align 8, !dbg !4829 | |
| store i16 1980, i16* %102, align 2, !dbg !4831 | |
| %103 = load i8*, i8** %9, align 8, !dbg !4832 | |
| store i8 1, i8* %103, align 1, !dbg !4833 | |
| %104 = load i8*, i8** %10, align 8, !dbg !4834 | |
| store i8 6, i8* %104, align 1, !dbg !4835 | |
| br label %105 | |
| 105: ; preds = %101, %81 | |
| ret void, !dbg !4836 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @computeTimeFromItow(i32 %0, i8* %1, i8* %2, i8* %3) #0 !dbg !4837 { | |
| %5 = alloca i32, align 4 | |
| %6 = alloca i8*, align 8 | |
| %7 = alloca i8*, align 8 | |
| %8 = alloca i8*, align 8 | |
| store i32 %0, i32* %5, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !4840, metadata !DIExpression()), !dbg !4841 | |
| store i8* %1, i8** %6, align 8 | |
| call void @llvm.dbg.declare(metadata i8** %6, metadata !4842, metadata !DIExpression()), !dbg !4843 | |
| store i8* %2, i8** %7, align 8 | |
| call void @llvm.dbg.declare(metadata i8** %7, metadata !4844, metadata !DIExpression()), !dbg !4845 | |
| store i8* %3, i8** %8, align 8 | |
| call void @llvm.dbg.declare(metadata i8** %8, metadata !4846, metadata !DIExpression()), !dbg !4847 | |
| %9 = load i32, i32* %5, align 4, !dbg !4848 | |
| %10 = urem i32 %9, 86400000, !dbg !4849 | |
| store i32 %10, i32* %5, align 4, !dbg !4850 | |
| %11 = load i32, i32* %5, align 4, !dbg !4851 | |
| %12 = zext i32 %11 to i64, !dbg !4851 | |
| %13 = udiv i64 %12, 3600000, !dbg !4852 | |
| %14 = trunc i64 %13 to i8, !dbg !4853 | |
| %15 = load i8*, i8** %6, align 8, !dbg !4854 | |
| store i8 %14, i8* %15, align 1, !dbg !4855 | |
| %16 = load i8*, i8** %6, align 8, !dbg !4856 | |
| %17 = load i8, i8* %16, align 1, !dbg !4857 | |
| %18 = zext i8 %17 to i32, !dbg !4858 | |
| %19 = mul nsw i32 %18, 60, !dbg !4859 | |
| %20 = mul nsw i32 %19, 60, !dbg !4860 | |
| %21 = mul nsw i32 %20, 1000, !dbg !4861 | |
| %22 = load i32, i32* %5, align 4, !dbg !4862 | |
| %23 = sub i32 %22, %21, !dbg !4862 | |
| store i32 %23, i32* %5, align 4, !dbg !4862 | |
| %24 = load i32, i32* %5, align 4, !dbg !4863 | |
| %25 = zext i32 %24 to i64, !dbg !4863 | |
| %26 = udiv i64 %25, 60000, !dbg !4864 | |
| %27 = trunc i64 %26 to i8, !dbg !4865 | |
| %28 = load i8*, i8** %7, align 8, !dbg !4866 | |
| store i8 %27, i8* %28, align 1, !dbg !4867 | |
| %29 = load i8*, i8** %7, align 8, !dbg !4868 | |
| %30 = load i8, i8* %29, align 1, !dbg !4869 | |
| %31 = zext i8 %30 to i32, !dbg !4870 | |
| %32 = mul nsw i32 %31, 60, !dbg !4871 | |
| %33 = mul nsw i32 %32, 1000, !dbg !4872 | |
| %34 = load i32, i32* %5, align 4, !dbg !4873 | |
| %35 = sub i32 %34, %33, !dbg !4873 | |
| store i32 %35, i32* %5, align 4, !dbg !4873 | |
| %36 = load i32, i32* %5, align 4, !dbg !4874 | |
| %37 = zext i32 %36 to i64, !dbg !4874 | |
| %38 = udiv i64 %37, 1000, !dbg !4875 | |
| %39 = trunc i64 %38 to i8, !dbg !4876 | |
| %40 = load i8*, i8** %8, align 8, !dbg !4877 | |
| store i8 %39, i8* %40, align 1, !dbg !4878 | |
| ret void, !dbg !4879 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i32 @isLeapYear(i16 zeroext %0) #0 !dbg !4880 { | |
| %2 = alloca i32, align 4 | |
| %3 = alloca i16, align 2 | |
| store i16 %0, i16* %3, align 2 | |
| call void @llvm.dbg.declare(metadata i16* %3, metadata !4883, metadata !DIExpression()), !dbg !4884 | |
| %4 = load i16, i16* %3, align 2, !dbg !4885 | |
| %5 = zext i16 %4 to i32, !dbg !4885 | |
| %6 = and i32 %5, 3, !dbg !4887 | |
| %7 = icmp ne i32 %6, 0, !dbg !4887 | |
| br i1 %7, label %8, label %9, !dbg !4888 | |
| 8: ; preds = %1 | |
| store i32 0, i32* %2, align 4, !dbg !4889 | |
| br label %22, !dbg !4889 | |
| 9: ; preds = %1 | |
| %10 = load i16, i16* %3, align 2, !dbg !4890 | |
| %11 = zext i16 %10 to i32, !dbg !4890 | |
| %12 = srem i32 %11, 100, !dbg !4893 | |
| %13 = icmp ne i32 %12, 0, !dbg !4894 | |
| br i1 %13, label %14, label %15, !dbg !4895 | |
| 14: ; preds = %9 | |
| store i32 1, i32* %2, align 4, !dbg !4896 | |
| br label %22, !dbg !4896 | |
| 15: ; preds = %9 | |
| %16 = load i16, i16* %3, align 2, !dbg !4897 | |
| %17 = zext i16 %16 to i32, !dbg !4897 | |
| %18 = srem i32 %17, 400, !dbg !4899 | |
| %19 = icmp ne i32 %18, 0, !dbg !4900 | |
| br i1 %19, label %20, label %21, !dbg !4901 | |
| 20: ; preds = %15 | |
| store i32 0, i32* %2, align 4, !dbg !4902 | |
| br label %22, !dbg !4902 | |
| 21: ; preds = %15 | |
| store i32 1, i32* %2, align 4, !dbg !4903 | |
| br label %22, !dbg !4903 | |
| 22: ; preds = %21, %20, %14, %8 | |
| %23 = load i32, i32* %2, align 4, !dbg !4904 | |
| ret i32 %23, !dbg !4904 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @computeWeekAndItow(i16 zeroext %0, i8 zeroext %1, i8 zeroext %2, i8 zeroext %3, i8 zeroext %4, i8 zeroext %5, i16 signext %6, i16* %7, i32* %8) #0 !dbg !4905 { | |
| %10 = alloca i16, align 2 | |
| %11 = alloca i8, align 1 | |
| %12 = alloca i8, align 1 | |
| %13 = alloca i8, align 1 | |
| %14 = alloca i8, align 1 | |
| %15 = alloca i8, align 1 | |
| %16 = alloca i16, align 2 | |
| %17 = alloca i16*, align 8 | |
| %18 = alloca i32*, align 8 | |
| %19 = alloca i32, align 4 | |
| %20 = alloca i32, align 4 | |
| %21 = alloca i32, align 4 | |
| store i16 %0, i16* %10, align 2 | |
| call void @llvm.dbg.declare(metadata i16* %10, metadata !4908, metadata !DIExpression()), !dbg !4909 | |
| store i8 %1, i8* %11, align 1 | |
| call void @llvm.dbg.declare(metadata i8* %11, metadata !4910, metadata !DIExpression()), !dbg !4911 | |
| store i8 %2, i8* %12, align 1 | |
| call void @llvm.dbg.declare(metadata i8* %12, metadata !4912, metadata !DIExpression()), !dbg !4913 | |
| store i8 %3, i8* %13, align 1 | |
| call void @llvm.dbg.declare(metadata i8* %13, metadata !4914, metadata !DIExpression()), !dbg !4915 | |
| store i8 %4, i8* %14, align 1 | |
| call void @llvm.dbg.declare(metadata i8* %14, metadata !4916, metadata !DIExpression()), !dbg !4917 | |
| store i8 %5, i8* %15, align 1 | |
| call void @llvm.dbg.declare(metadata i8* %15, metadata !4918, metadata !DIExpression()), !dbg !4919 | |
| store i16 %6, i16* %16, align 2 | |
| call void @llvm.dbg.declare(metadata i16* %16, metadata !4920, metadata !DIExpression()), !dbg !4921 | |
| store i16* %7, i16** %17, align 8 | |
| call void @llvm.dbg.declare(metadata i16** %17, metadata !4922, metadata !DIExpression()), !dbg !4923 | |
| store i32* %8, i32** %18, align 8 | |
| call void @llvm.dbg.declare(metadata i32** %18, metadata !4924, metadata !DIExpression()), !dbg !4925 | |
| call void @llvm.dbg.declare(metadata i32* %19, metadata !4926, metadata !DIExpression()), !dbg !4927 | |
| store i32 11683, i32* %19, align 4, !dbg !4927 | |
| call void @llvm.dbg.declare(metadata i32* %20, metadata !4928, metadata !DIExpression()), !dbg !4929 | |
| call void @llvm.dbg.declare(metadata i32* %21, metadata !4930, metadata !DIExpression()), !dbg !4931 | |
| %22 = load i8, i8* %11, align 1, !dbg !4932 | |
| %23 = add i8 %22, -1, !dbg !4932 | |
| store i8 %23, i8* %11, align 1, !dbg !4932 | |
| %24 = load i8, i8* %12, align 1, !dbg !4933 | |
| %25 = add i8 %24, -1, !dbg !4933 | |
| store i8 %25, i8* %12, align 1, !dbg !4933 | |
| %26 = load i8, i8* %11, align 1, !dbg !4934 | |
| %27 = zext i8 %26 to i64, !dbg !4935 | |
| %28 = getelementptr inbounds [12 x i16], [12 x i16]* @month_day_norm, i64 0, i64 %27, !dbg !4935 | |
| %29 = load i16, i16* %28, align 2, !dbg !4935 | |
| %30 = zext i16 %29 to i32, !dbg !4935 | |
| %31 = load i32, i32* %19, align 4, !dbg !4936 | |
| %32 = add i32 %31, %30, !dbg !4936 | |
| store i32 %32, i32* %19, align 4, !dbg !4936 | |
| %33 = load i8, i8* %12, align 1, !dbg !4937 | |
| %34 = zext i8 %33 to i32, !dbg !4937 | |
| %35 = load i32, i32* %19, align 4, !dbg !4938 | |
| %36 = add i32 %35, %34, !dbg !4938 | |
| store i32 %36, i32* %19, align 4, !dbg !4938 | |
| %37 = load i16, i16* %10, align 2, !dbg !4939 | |
| %38 = call i32 @isLeapYear(i16 zeroext %37), !dbg !4941 | |
| %39 = icmp ne i32 %38, 0, !dbg !4941 | |
| br i1 %39, label %40, label %47, !dbg !4942 | |
| 40: ; preds = %9 | |
| %41 = load i8, i8* %11, align 1, !dbg !4943 | |
| %42 = zext i8 %41 to i32, !dbg !4943 | |
| %43 = icmp sge i32 %42, 2, !dbg !4944 | |
| br i1 %43, label %44, label %47, !dbg !4945 | |
| 44: ; preds = %40 | |
| %45 = load i32, i32* %19, align 4, !dbg !4946 | |
| %46 = add i32 %45, 1, !dbg !4946 | |
| store i32 %46, i32* %19, align 4, !dbg !4946 | |
| br label %47, !dbg !4947 | |
| 47: ; preds = %44, %40, %9 | |
| br label %48, !dbg !4948 | |
| 48: ; preds = %64, %47 | |
| %49 = load i16, i16* %10, align 2, !dbg !4949 | |
| %50 = zext i16 %49 to i32, !dbg !4949 | |
| %51 = icmp sgt i32 %50, 2012, !dbg !4950 | |
| br i1 %51, label %52, label %65, !dbg !4948 | |
| 52: ; preds = %48 | |
| %53 = load i16, i16* %10, align 2, !dbg !4951 | |
| %54 = add i16 %53, -1, !dbg !4951 | |
| store i16 %54, i16* %10, align 2, !dbg !4951 | |
| %55 = load i16, i16* %10, align 2, !dbg !4953 | |
| %56 = call i32 @isLeapYear(i16 zeroext %55), !dbg !4955 | |
| %57 = icmp ne i32 %56, 0, !dbg !4955 | |
| br i1 %57, label %58, label %61, !dbg !4956 | |
| 58: ; preds = %52 | |
| %59 = load i32, i32* %19, align 4, !dbg !4957 | |
| %60 = add i32 %59, 366, !dbg !4957 | |
| store i32 %60, i32* %19, align 4, !dbg !4957 | |
| br label %64, !dbg !4958 | |
| 61: ; preds = %52 | |
| %62 = load i32, i32* %19, align 4, !dbg !4959 | |
| %63 = add i32 %62, 365, !dbg !4959 | |
| store i32 %63, i32* %19, align 4, !dbg !4959 | |
| br label %64 | |
| 64: ; preds = %61, %58 | |
| br label %48, !dbg !4948, !llvm.loop !4960 | |
| 65: ; preds = %48 | |
| %66 = load i32, i32* %19, align 4, !dbg !4962 | |
| %67 = udiv i32 %66, 7, !dbg !4963 | |
| store i32 %67, i32* %20, align 4, !dbg !4964 | |
| %68 = load i32, i32* %20, align 4, !dbg !4965 | |
| %69 = mul i32 %68, 7, !dbg !4966 | |
| %70 = load i32, i32* %19, align 4, !dbg !4967 | |
| %71 = sub i32 %70, %69, !dbg !4967 | |
| store i32 %71, i32* %19, align 4, !dbg !4967 | |
| %72 = load i32, i32* %19, align 4, !dbg !4968 | |
| %73 = mul i32 %72, 24, !dbg !4969 | |
| %74 = load i8, i8* %13, align 1, !dbg !4970 | |
| %75 = zext i8 %74 to i32, !dbg !4970 | |
| %76 = add i32 %73, %75, !dbg !4971 | |
| %77 = mul i32 %76, 60, !dbg !4972 | |
| %78 = load i8, i8* %14, align 1, !dbg !4973 | |
| %79 = zext i8 %78 to i32, !dbg !4973 | |
| %80 = add i32 %77, %79, !dbg !4974 | |
| %81 = mul i32 %80, 60, !dbg !4975 | |
| %82 = load i8, i8* %15, align 1, !dbg !4976 | |
| %83 = zext i8 %82 to i32, !dbg !4976 | |
| %84 = add i32 %81, %83, !dbg !4977 | |
| %85 = mul i32 %84, 1000, !dbg !4978 | |
| %86 = load i16, i16* %16, align 2, !dbg !4979 | |
| %87 = sext i16 %86 to i32, !dbg !4979 | |
| %88 = add i32 %85, %87, !dbg !4980 | |
| store i32 %88, i32* %21, align 4, !dbg !4981 | |
| %89 = load i32, i32* %20, align 4, !dbg !4982 | |
| %90 = trunc i32 %89 to i16, !dbg !4983 | |
| %91 = load i16*, i16** %17, align 8, !dbg !4984 | |
| store i16 %90, i16* %91, align 2, !dbg !4985 | |
| %92 = load i32, i32* %21, align 4, !dbg !4986 | |
| %93 = load i32*, i32** %18, align 8, !dbg !4987 | |
| store i32 %92, i32* %93, align 4, !dbg !4988 | |
| ret void, !dbg !4989 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i32 @testDateConversion() #0 !dbg !4990 { | |
| %1 = alloca i32, align 4 | |
| %2 = alloca i16, align 2 | |
| %3 = alloca i32, align 4 | |
| %4 = alloca i16, align 2 | |
| %5 = alloca i8, align 1 | |
| %6 = alloca i8, align 1 | |
| call void @llvm.dbg.declare(metadata i16* %2, metadata !4991, metadata !DIExpression()), !dbg !4992 | |
| call void @llvm.dbg.declare(metadata i32* %3, metadata !4993, metadata !DIExpression()), !dbg !4994 | |
| call void @llvm.dbg.declare(metadata i16* %4, metadata !4995, metadata !DIExpression()), !dbg !4996 | |
| call void @llvm.dbg.declare(metadata i8* %5, metadata !4997, metadata !DIExpression()), !dbg !4998 | |
| call void @llvm.dbg.declare(metadata i8* %6, metadata !4999, metadata !DIExpression()), !dbg !5000 | |
| call void @computeWeekAndItow(i16 zeroext 2016, i8 zeroext 3, i8 zeroext 12, i8 zeroext 9, i8 zeroext 10, i8 zeroext 11, i16 signext 250, i16* %2, i32* %3), !dbg !5001 | |
| %7 = load i16, i16* %2, align 2, !dbg !5002 | |
| %8 = load i32, i32* %3, align 4, !dbg !5003 | |
| call void @computeDateFromWeekAndItow(i16 zeroext %7, i32 %8, i16* %4, i8* %5, i8* %6), !dbg !5004 | |
| %9 = load i16, i16* %4, align 2, !dbg !5005 | |
| %10 = zext i16 %9 to i32, !dbg !5005 | |
| %11 = icmp ne i32 %10, 2016, !dbg !5007 | |
| br i1 %11, label %12, label %13, !dbg !5008 | |
| 12: ; preds = %0 | |
| store i32 0, i32* %1, align 4, !dbg !5009 | |
| br label %34, !dbg !5009 | |
| 13: ; preds = %0 | |
| %14 = load i8, i8* %5, align 1, !dbg !5010 | |
| %15 = zext i8 %14 to i32, !dbg !5010 | |
| %16 = icmp ne i32 %15, 3, !dbg !5012 | |
| br i1 %16, label %17, label %18, !dbg !5013 | |
| 17: ; preds = %13 | |
| store i32 0, i32* %1, align 4, !dbg !5014 | |
| br label %34, !dbg !5014 | |
| 18: ; preds = %13 | |
| %19 = load i8, i8* %6, align 1, !dbg !5015 | |
| %20 = zext i8 %19 to i32, !dbg !5015 | |
| %21 = icmp ne i32 %20, 12, !dbg !5017 | |
| br i1 %21, label %22, label %23, !dbg !5018 | |
| 22: ; preds = %18 | |
| store i32 0, i32* %1, align 4, !dbg !5019 | |
| br label %34, !dbg !5019 | |
| 23: ; preds = %18 | |
| %24 = load i16, i16* %2, align 2, !dbg !5020 | |
| %25 = zext i16 %24 to i32, !dbg !5020 | |
| %26 = icmp ne i32 %25, 1887, !dbg !5022 | |
| br i1 %26, label %27, label %28, !dbg !5023 | |
| 27: ; preds = %23 | |
| store i32 0, i32* %1, align 4, !dbg !5024 | |
| br label %34, !dbg !5024 | |
| 28: ; preds = %23 | |
| %29 = load i32, i32* %3, align 4, !dbg !5025 | |
| %30 = zext i32 %29 to i64, !dbg !5025 | |
| %31 = icmp ne i64 %30, 551411250, !dbg !5027 | |
| br i1 %31, label %32, label %33, !dbg !5028 | |
| 32: ; preds = %28 | |
| store i32 0, i32* %1, align 4, !dbg !5029 | |
| br label %34, !dbg !5029 | |
| 33: ; preds = %28 | |
| store i32 1, i32* %1, align 4, !dbg !5030 | |
| br label %34, !dbg !5030 | |
| 34: ; preds = %33, %32, %27, %22, %17, %12 | |
| %35 = load i32, i32* %1, align 4, !dbg !5031 | |
| ret i32 %35, !dbg !5031 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double* @vector3Set(double* %0, double %1) #0 !dbg !5032 { | |
| %3 = alloca double*, align 8 | |
| %4 = alloca double, align 8 | |
| %5 = alloca i32, align 4 | |
| store double* %0, double** %3, align 8 | |
| call void @llvm.dbg.declare(metadata double** %3, metadata !5036, metadata !DIExpression()), !dbg !5037 | |
| store double %1, double* %4, align 8 | |
| call void @llvm.dbg.declare(metadata double* %4, metadata !5038, metadata !DIExpression()), !dbg !5039 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !5040, metadata !DIExpression()), !dbg !5041 | |
| store i32 0, i32* %5, align 4, !dbg !5042 | |
| br label %6, !dbg !5044 | |
| 6: ; preds = %15, %2 | |
| %7 = load i32, i32* %5, align 4, !dbg !5045 | |
| %8 = icmp slt i32 %7, 3, !dbg !5047 | |
| br i1 %8, label %9, label %18, !dbg !5048 | |
| 9: ; preds = %6 | |
| %10 = load double, double* %4, align 8, !dbg !5049 | |
| %11 = load double*, double** %3, align 8, !dbg !5050 | |
| %12 = load i32, i32* %5, align 4, !dbg !5051 | |
| %13 = sext i32 %12 to i64, !dbg !5050 | |
| %14 = getelementptr inbounds double, double* %11, i64 %13, !dbg !5050 | |
| store double %10, double* %14, align 8, !dbg !5052 | |
| br label %15, !dbg !5050 | |
| 15: ; preds = %9 | |
| %16 = load i32, i32* %5, align 4, !dbg !5053 | |
| %17 = add nsw i32 %16, 1, !dbg !5053 | |
| store i32 %17, i32* %5, align 4, !dbg !5053 | |
| br label %6, !dbg !5054, !llvm.loop !5055 | |
| 18: ; preds = %6 | |
| %19 = load double*, double** %3, align 8, !dbg !5057 | |
| ret double* %19, !dbg !5058 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double* @vector3Copy(double* %0, double* %1) #0 !dbg !5059 { | |
| %3 = alloca double*, align 8 | |
| %4 = alloca double*, align 8 | |
| %5 = alloca i32, align 4 | |
| store double* %0, double** %3, align 8 | |
| call void @llvm.dbg.declare(metadata double** %3, metadata !5063, metadata !DIExpression()), !dbg !5064 | |
| store double* %1, double** %4, align 8 | |
| call void @llvm.dbg.declare(metadata double** %4, metadata !5065, metadata !DIExpression()), !dbg !5066 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !5067, metadata !DIExpression()), !dbg !5068 | |
| store i32 0, i32* %5, align 4, !dbg !5069 | |
| br label %6, !dbg !5071 | |
| 6: ; preds = %19, %2 | |
| %7 = load i32, i32* %5, align 4, !dbg !5072 | |
| %8 = icmp slt i32 %7, 3, !dbg !5074 | |
| br i1 %8, label %9, label %22, !dbg !5075 | |
| 9: ; preds = %6 | |
| %10 = load double*, double** %3, align 8, !dbg !5076 | |
| %11 = load i32, i32* %5, align 4, !dbg !5077 | |
| %12 = sext i32 %11 to i64, !dbg !5076 | |
| %13 = getelementptr inbounds double, double* %10, i64 %12, !dbg !5076 | |
| %14 = load double, double* %13, align 8, !dbg !5076 | |
| %15 = load double*, double** %4, align 8, !dbg !5078 | |
| %16 = load i32, i32* %5, align 4, !dbg !5079 | |
| %17 = sext i32 %16 to i64, !dbg !5078 | |
| %18 = getelementptr inbounds double, double* %15, i64 %17, !dbg !5078 | |
| store double %14, double* %18, align 8, !dbg !5080 | |
| br label %19, !dbg !5078 | |
| 19: ; preds = %9 | |
| %20 = load i32, i32* %5, align 4, !dbg !5081 | |
| %21 = add nsw i32 %20, 1, !dbg !5081 | |
| store i32 %21, i32* %5, align 4, !dbg !5081 | |
| br label %6, !dbg !5082, !llvm.loop !5083 | |
| 22: ; preds = %6 | |
| %23 = load double*, double** %4, align 8, !dbg !5085 | |
| ret double* %23, !dbg !5086 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double* @vector3MultiplyAccumulate(double* %0, double* %1, double %2, double* %3) #0 !dbg !5087 { | |
| %5 = alloca double*, align 8 | |
| %6 = alloca double*, align 8 | |
| %7 = alloca double, align 8 | |
| %8 = alloca double*, align 8 | |
| %9 = alloca i32, align 4 | |
| store double* %0, double** %5, align 8 | |
| call void @llvm.dbg.declare(metadata double** %5, metadata !5090, metadata !DIExpression()), !dbg !5091 | |
| store double* %1, double** %6, align 8 | |
| call void @llvm.dbg.declare(metadata double** %6, metadata !5092, metadata !DIExpression()), !dbg !5093 | |
| store double %2, double* %7, align 8 | |
| call void @llvm.dbg.declare(metadata double* %7, metadata !5094, metadata !DIExpression()), !dbg !5095 | |
| store double* %3, double** %8, align 8 | |
| call void @llvm.dbg.declare(metadata double** %8, metadata !5096, metadata !DIExpression()), !dbg !5097 | |
| call void @llvm.dbg.declare(metadata i32* %9, metadata !5098, metadata !DIExpression()), !dbg !5099 | |
| store i32 0, i32* %9, align 4, !dbg !5100 | |
| br label %10, !dbg !5102 | |
| 10: ; preds = %31, %4 | |
| %11 = load i32, i32* %9, align 4, !dbg !5103 | |
| %12 = icmp slt i32 %11, 3, !dbg !5105 | |
| br i1 %12, label %13, label %34, !dbg !5106 | |
| 13: ; preds = %10 | |
| %14 = load double*, double** %5, align 8, !dbg !5107 | |
| %15 = load i32, i32* %9, align 4, !dbg !5108 | |
| %16 = sext i32 %15 to i64, !dbg !5107 | |
| %17 = getelementptr inbounds double, double* %14, i64 %16, !dbg !5107 | |
| %18 = load double, double* %17, align 8, !dbg !5107 | |
| %19 = load double*, double** %6, align 8, !dbg !5109 | |
| %20 = load i32, i32* %9, align 4, !dbg !5110 | |
| %21 = sext i32 %20 to i64, !dbg !5109 | |
| %22 = getelementptr inbounds double, double* %19, i64 %21, !dbg !5109 | |
| %23 = load double, double* %22, align 8, !dbg !5109 | |
| %24 = load double, double* %7, align 8, !dbg !5111 | |
| %25 = fmul double %23, %24, !dbg !5112 | |
| %26 = fadd double %18, %25, !dbg !5113 | |
| %27 = load double*, double** %8, align 8, !dbg !5114 | |
| %28 = load i32, i32* %9, align 4, !dbg !5115 | |
| %29 = sext i32 %28 to i64, !dbg !5114 | |
| %30 = getelementptr inbounds double, double* %27, i64 %29, !dbg !5114 | |
| store double %26, double* %30, align 8, !dbg !5116 | |
| br label %31, !dbg !5114 | |
| 31: ; preds = %13 | |
| %32 = load i32, i32* %9, align 4, !dbg !5117 | |
| %33 = add nsw i32 %32, 1, !dbg !5117 | |
| store i32 %33, i32* %9, align 4, !dbg !5117 | |
| br label %10, !dbg !5118, !llvm.loop !5119 | |
| 34: ; preds = %10 | |
| %35 = load double*, double** %8, align 8, !dbg !5121 | |
| ret double* %35, !dbg !5122 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double* @vector3Sum(double* %0, double* %1, double* %2) #0 !dbg !5123 { | |
| %4 = alloca double*, align 8 | |
| %5 = alloca double*, align 8 | |
| %6 = alloca double*, align 8 | |
| %7 = alloca i32, align 4 | |
| store double* %0, double** %4, align 8 | |
| call void @llvm.dbg.declare(metadata double** %4, metadata !5126, metadata !DIExpression()), !dbg !5127 | |
| store double* %1, double** %5, align 8 | |
| call void @llvm.dbg.declare(metadata double** %5, metadata !5128, metadata !DIExpression()), !dbg !5129 | |
| store double* %2, double** %6, align 8 | |
| call void @llvm.dbg.declare(metadata double** %6, metadata !5130, metadata !DIExpression()), !dbg !5131 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !5132, metadata !DIExpression()), !dbg !5133 | |
| store i32 0, i32* %7, align 4, !dbg !5134 | |
| br label %8, !dbg !5136 | |
| 8: ; preds = %27, %3 | |
| %9 = load i32, i32* %7, align 4, !dbg !5137 | |
| %10 = icmp slt i32 %9, 3, !dbg !5139 | |
| br i1 %10, label %11, label %30, !dbg !5140 | |
| 11: ; preds = %8 | |
| %12 = load double*, double** %4, align 8, !dbg !5141 | |
| %13 = load i32, i32* %7, align 4, !dbg !5142 | |
| %14 = sext i32 %13 to i64, !dbg !5141 | |
| %15 = getelementptr inbounds double, double* %12, i64 %14, !dbg !5141 | |
| %16 = load double, double* %15, align 8, !dbg !5141 | |
| %17 = load double*, double** %5, align 8, !dbg !5143 | |
| %18 = load i32, i32* %7, align 4, !dbg !5144 | |
| %19 = sext i32 %18 to i64, !dbg !5143 | |
| %20 = getelementptr inbounds double, double* %17, i64 %19, !dbg !5143 | |
| %21 = load double, double* %20, align 8, !dbg !5143 | |
| %22 = fadd double %16, %21, !dbg !5145 | |
| %23 = load double*, double** %6, align 8, !dbg !5146 | |
| %24 = load i32, i32* %7, align 4, !dbg !5147 | |
| %25 = sext i32 %24 to i64, !dbg !5146 | |
| %26 = getelementptr inbounds double, double* %23, i64 %25, !dbg !5146 | |
| store double %22, double* %26, align 8, !dbg !5148 | |
| br label %27, !dbg !5146 | |
| 27: ; preds = %11 | |
| %28 = load i32, i32* %7, align 4, !dbg !5149 | |
| %29 = add nsw i32 %28, 1, !dbg !5149 | |
| store i32 %29, i32* %7, align 4, !dbg !5149 | |
| br label %8, !dbg !5150, !llvm.loop !5151 | |
| 30: ; preds = %8 | |
| %31 = load double*, double** %6, align 8, !dbg !5153 | |
| ret double* %31, !dbg !5154 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double* @vector3Difference(double* %0, double* %1, double* %2) #0 !dbg !5155 { | |
| %4 = alloca double*, align 8 | |
| %5 = alloca double*, align 8 | |
| %6 = alloca double*, align 8 | |
| %7 = alloca i32, align 4 | |
| store double* %0, double** %4, align 8 | |
| call void @llvm.dbg.declare(metadata double** %4, metadata !5156, metadata !DIExpression()), !dbg !5157 | |
| store double* %1, double** %5, align 8 | |
| call void @llvm.dbg.declare(metadata double** %5, metadata !5158, metadata !DIExpression()), !dbg !5159 | |
| store double* %2, double** %6, align 8 | |
| call void @llvm.dbg.declare(metadata double** %6, metadata !5160, metadata !DIExpression()), !dbg !5161 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !5162, metadata !DIExpression()), !dbg !5163 | |
| store i32 0, i32* %7, align 4, !dbg !5164 | |
| br label %8, !dbg !5166 | |
| 8: ; preds = %27, %3 | |
| %9 = load i32, i32* %7, align 4, !dbg !5167 | |
| %10 = icmp slt i32 %9, 3, !dbg !5169 | |
| br i1 %10, label %11, label %30, !dbg !5170 | |
| 11: ; preds = %8 | |
| %12 = load double*, double** %4, align 8, !dbg !5171 | |
| %13 = load i32, i32* %7, align 4, !dbg !5172 | |
| %14 = sext i32 %13 to i64, !dbg !5171 | |
| %15 = getelementptr inbounds double, double* %12, i64 %14, !dbg !5171 | |
| %16 = load double, double* %15, align 8, !dbg !5171 | |
| %17 = load double*, double** %5, align 8, !dbg !5173 | |
| %18 = load i32, i32* %7, align 4, !dbg !5174 | |
| %19 = sext i32 %18 to i64, !dbg !5173 | |
| %20 = getelementptr inbounds double, double* %17, i64 %19, !dbg !5173 | |
| %21 = load double, double* %20, align 8, !dbg !5173 | |
| %22 = fsub double %16, %21, !dbg !5175 | |
| %23 = load double*, double** %6, align 8, !dbg !5176 | |
| %24 = load i32, i32* %7, align 4, !dbg !5177 | |
| %25 = sext i32 %24 to i64, !dbg !5176 | |
| %26 = getelementptr inbounds double, double* %23, i64 %25, !dbg !5176 | |
| store double %22, double* %26, align 8, !dbg !5178 | |
| br label %27, !dbg !5176 | |
| 27: ; preds = %11 | |
| %28 = load i32, i32* %7, align 4, !dbg !5179 | |
| %29 = add nsw i32 %28, 1, !dbg !5179 | |
| store i32 %29, i32* %7, align 4, !dbg !5179 | |
| br label %8, !dbg !5180, !llvm.loop !5181 | |
| 30: ; preds = %8 | |
| %31 = load double*, double** %6, align 8, !dbg !5183 | |
| ret double* %31, !dbg !5184 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double* @vector3Multiply(double* %0, double* %1, double* %2) #0 !dbg !5185 { | |
| %4 = alloca double*, align 8 | |
| %5 = alloca double*, align 8 | |
| %6 = alloca double*, align 8 | |
| %7 = alloca i32, align 4 | |
| store double* %0, double** %4, align 8 | |
| call void @llvm.dbg.declare(metadata double** %4, metadata !5186, metadata !DIExpression()), !dbg !5187 | |
| store double* %1, double** %5, align 8 | |
| call void @llvm.dbg.declare(metadata double** %5, metadata !5188, metadata !DIExpression()), !dbg !5189 | |
| store double* %2, double** %6, align 8 | |
| call void @llvm.dbg.declare(metadata double** %6, metadata !5190, metadata !DIExpression()), !dbg !5191 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !5192, metadata !DIExpression()), !dbg !5193 | |
| store i32 0, i32* %7, align 4, !dbg !5194 | |
| br label %8, !dbg !5196 | |
| 8: ; preds = %27, %3 | |
| %9 = load i32, i32* %7, align 4, !dbg !5197 | |
| %10 = icmp slt i32 %9, 3, !dbg !5199 | |
| br i1 %10, label %11, label %30, !dbg !5200 | |
| 11: ; preds = %8 | |
| %12 = load double*, double** %4, align 8, !dbg !5201 | |
| %13 = load i32, i32* %7, align 4, !dbg !5202 | |
| %14 = sext i32 %13 to i64, !dbg !5201 | |
| %15 = getelementptr inbounds double, double* %12, i64 %14, !dbg !5201 | |
| %16 = load double, double* %15, align 8, !dbg !5201 | |
| %17 = load double*, double** %5, align 8, !dbg !5203 | |
| %18 = load i32, i32* %7, align 4, !dbg !5204 | |
| %19 = sext i32 %18 to i64, !dbg !5203 | |
| %20 = getelementptr inbounds double, double* %17, i64 %19, !dbg !5203 | |
| %21 = load double, double* %20, align 8, !dbg !5203 | |
| %22 = fmul double %16, %21, !dbg !5205 | |
| %23 = load double*, double** %6, align 8, !dbg !5206 | |
| %24 = load i32, i32* %7, align 4, !dbg !5207 | |
| %25 = sext i32 %24 to i64, !dbg !5206 | |
| %26 = getelementptr inbounds double, double* %23, i64 %25, !dbg !5206 | |
| store double %22, double* %26, align 8, !dbg !5208 | |
| br label %27, !dbg !5206 | |
| 27: ; preds = %11 | |
| %28 = load i32, i32* %7, align 4, !dbg !5209 | |
| %29 = add nsw i32 %28, 1, !dbg !5209 | |
| store i32 %29, i32* %7, align 4, !dbg !5209 | |
| br label %8, !dbg !5210, !llvm.loop !5211 | |
| 30: ; preds = %8 | |
| %31 = load double*, double** %6, align 8, !dbg !5213 | |
| ret double* %31, !dbg !5214 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @vector3Dot(double* %0, double* %1) #0 !dbg !5215 { | |
| %3 = alloca double*, align 8 | |
| %4 = alloca double*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca double, align 8 | |
| store double* %0, double** %3, align 8 | |
| call void @llvm.dbg.declare(metadata double** %3, metadata !5218, metadata !DIExpression()), !dbg !5219 | |
| store double* %1, double** %4, align 8 | |
| call void @llvm.dbg.declare(metadata double** %4, metadata !5220, metadata !DIExpression()), !dbg !5221 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !5222, metadata !DIExpression()), !dbg !5223 | |
| call void @llvm.dbg.declare(metadata double* %6, metadata !5224, metadata !DIExpression()), !dbg !5225 | |
| store double 0.000000e+00, double* %6, align 8, !dbg !5225 | |
| store i32 0, i32* %5, align 4, !dbg !5226 | |
| br label %7, !dbg !5228 | |
| 7: ; preds = %24, %2 | |
| %8 = load i32, i32* %5, align 4, !dbg !5229 | |
| %9 = icmp slt i32 %8, 3, !dbg !5231 | |
| br i1 %9, label %10, label %27, !dbg !5232 | |
| 10: ; preds = %7 | |
| %11 = load double*, double** %3, align 8, !dbg !5233 | |
| %12 = load i32, i32* %5, align 4, !dbg !5234 | |
| %13 = sext i32 %12 to i64, !dbg !5233 | |
| %14 = getelementptr inbounds double, double* %11, i64 %13, !dbg !5233 | |
| %15 = load double, double* %14, align 8, !dbg !5233 | |
| %16 = load double*, double** %4, align 8, !dbg !5235 | |
| %17 = load i32, i32* %5, align 4, !dbg !5236 | |
| %18 = sext i32 %17 to i64, !dbg !5235 | |
| %19 = getelementptr inbounds double, double* %16, i64 %18, !dbg !5235 | |
| %20 = load double, double* %19, align 8, !dbg !5235 | |
| %21 = fmul double %15, %20, !dbg !5237 | |
| %22 = load double, double* %6, align 8, !dbg !5238 | |
| %23 = fadd double %22, %21, !dbg !5238 | |
| store double %23, double* %6, align 8, !dbg !5238 | |
| br label %24, !dbg !5239 | |
| 24: ; preds = %10 | |
| %25 = load i32, i32* %5, align 4, !dbg !5240 | |
| %26 = add nsw i32 %25, 1, !dbg !5240 | |
| store i32 %26, i32* %5, align 4, !dbg !5240 | |
| br label %7, !dbg !5241, !llvm.loop !5242 | |
| 27: ; preds = %7 | |
| %28 = load double, double* %6, align 8, !dbg !5244 | |
| ret double %28, !dbg !5245 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @vector3AngleBetween(double* %0, double* %1) #0 !dbg !5246 { | |
| %3 = alloca double, align 8 | |
| %4 = alloca double*, align 8 | |
| %5 = alloca double*, align 8 | |
| %6 = alloca double, align 8 | |
| %7 = alloca double, align 8 | |
| store double* %0, double** %4, align 8 | |
| call void @llvm.dbg.declare(metadata double** %4, metadata !5247, metadata !DIExpression()), !dbg !5248 | |
| store double* %1, double** %5, align 8 | |
| call void @llvm.dbg.declare(metadata double** %5, metadata !5249, metadata !DIExpression()), !dbg !5250 | |
| call void @llvm.dbg.declare(metadata double* %6, metadata !5251, metadata !DIExpression()), !dbg !5252 | |
| %8 = load double*, double** %4, align 8, !dbg !5253 | |
| %9 = load double*, double** %5, align 8, !dbg !5254 | |
| %10 = call double @vector3Dot(double* %8, double* %9), !dbg !5255 | |
| store double %10, double* %6, align 8, !dbg !5252 | |
| call void @llvm.dbg.declare(metadata double* %7, metadata !5256, metadata !DIExpression()), !dbg !5257 | |
| %11 = load double*, double** %4, align 8, !dbg !5258 | |
| %12 = call double @vector3LengthSquared(double* %11), !dbg !5259 | |
| %13 = load double*, double** %5, align 8, !dbg !5260 | |
| %14 = call double @vector3LengthSquared(double* %13), !dbg !5261 | |
| %15 = fmul double %12, %14, !dbg !5262 | |
| store double %15, double* %7, align 8, !dbg !5257 | |
| %16 = load double, double* %7, align 8, !dbg !5263 | |
| %17 = fcmp ogt double %16, 0.000000e+00, !dbg !5265 | |
| br i1 %17, label %18, label %25, !dbg !5266 | |
| 18: ; preds = %2 | |
| %19 = load double, double* %7, align 8, !dbg !5267 | |
| %20 = call double @sqrt(double %19) #7, !dbg !5269 | |
| store double %20, double* %7, align 8, !dbg !5270 | |
| %21 = load double, double* %6, align 8, !dbg !5271 | |
| %22 = load double, double* %7, align 8, !dbg !5272 | |
| %23 = fdiv double %21, %22, !dbg !5273 | |
| %24 = call double @acos(double %23) #7, !dbg !5274 | |
| store double %24, double* %3, align 8, !dbg !5275 | |
| br label %26, !dbg !5275 | |
| 25: ; preds = %2 | |
| store double 0.000000e+00, double* %3, align 8, !dbg !5276 | |
| br label %26, !dbg !5276 | |
| 26: ; preds = %25, %18 | |
| %27 = load double, double* %3, align 8, !dbg !5277 | |
| ret double %27, !dbg !5277 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @vector3LengthSquared(double* %0) #0 !dbg !5278 { | |
| %2 = alloca double*, align 8 | |
| store double* %0, double** %2, align 8 | |
| call void @llvm.dbg.declare(metadata double** %2, metadata !5281, metadata !DIExpression()), !dbg !5282 | |
| %3 = load double*, double** %2, align 8, !dbg !5283 | |
| %4 = load double*, double** %2, align 8, !dbg !5284 | |
| %5 = call double @vector3Dot(double* %3, double* %4), !dbg !5285 | |
| ret double %5, !dbg !5286 | |
| } | |
| ; Function Attrs: nounwind | |
| declare dso_local double @sqrt(double) #5 | |
| ; Function Attrs: nounwind | |
| declare dso_local double @acos(double) #5 | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double* @vector3Cross(double* %0, double* %1, double* %2) #0 !dbg !5287 { | |
| %4 = alloca double*, align 8 | |
| %5 = alloca double*, align 8 | |
| %6 = alloca double*, align 8 | |
| store double* %0, double** %4, align 8 | |
| call void @llvm.dbg.declare(metadata double** %4, metadata !5288, metadata !DIExpression()), !dbg !5289 | |
| store double* %1, double** %5, align 8 | |
| call void @llvm.dbg.declare(metadata double** %5, metadata !5290, metadata !DIExpression()), !dbg !5291 | |
| store double* %2, double** %6, align 8 | |
| call void @llvm.dbg.declare(metadata double** %6, metadata !5292, metadata !DIExpression()), !dbg !5293 | |
| %7 = load double*, double** %4, align 8, !dbg !5294 | |
| %8 = getelementptr inbounds double, double* %7, i64 1, !dbg !5294 | |
| %9 = load double, double* %8, align 8, !dbg !5294 | |
| %10 = load double*, double** %5, align 8, !dbg !5295 | |
| %11 = getelementptr inbounds double, double* %10, i64 2, !dbg !5295 | |
| %12 = load double, double* %11, align 8, !dbg !5295 | |
| %13 = fmul double %9, %12, !dbg !5296 | |
| %14 = load double*, double** %4, align 8, !dbg !5297 | |
| %15 = getelementptr inbounds double, double* %14, i64 2, !dbg !5297 | |
| %16 = load double, double* %15, align 8, !dbg !5297 | |
| %17 = load double*, double** %5, align 8, !dbg !5298 | |
| %18 = getelementptr inbounds double, double* %17, i64 1, !dbg !5298 | |
| %19 = load double, double* %18, align 8, !dbg !5298 | |
| %20 = fmul double %16, %19, !dbg !5299 | |
| %21 = fsub double %13, %20, !dbg !5300 | |
| %22 = load double*, double** %6, align 8, !dbg !5301 | |
| %23 = getelementptr inbounds double, double* %22, i64 0, !dbg !5301 | |
| store double %21, double* %23, align 8, !dbg !5302 | |
| %24 = load double*, double** %4, align 8, !dbg !5303 | |
| %25 = getelementptr inbounds double, double* %24, i64 2, !dbg !5303 | |
| %26 = load double, double* %25, align 8, !dbg !5303 | |
| %27 = load double*, double** %5, align 8, !dbg !5304 | |
| %28 = getelementptr inbounds double, double* %27, i64 0, !dbg !5304 | |
| %29 = load double, double* %28, align 8, !dbg !5304 | |
| %30 = fmul double %26, %29, !dbg !5305 | |
| %31 = load double*, double** %4, align 8, !dbg !5306 | |
| %32 = getelementptr inbounds double, double* %31, i64 0, !dbg !5306 | |
| %33 = load double, double* %32, align 8, !dbg !5306 | |
| %34 = load double*, double** %5, align 8, !dbg !5307 | |
| %35 = getelementptr inbounds double, double* %34, i64 2, !dbg !5307 | |
| %36 = load double, double* %35, align 8, !dbg !5307 | |
| %37 = fmul double %33, %36, !dbg !5308 | |
| %38 = fsub double %30, %37, !dbg !5309 | |
| %39 = load double*, double** %6, align 8, !dbg !5310 | |
| %40 = getelementptr inbounds double, double* %39, i64 1, !dbg !5310 | |
| store double %38, double* %40, align 8, !dbg !5311 | |
| %41 = load double*, double** %4, align 8, !dbg !5312 | |
| %42 = getelementptr inbounds double, double* %41, i64 0, !dbg !5312 | |
| %43 = load double, double* %42, align 8, !dbg !5312 | |
| %44 = load double*, double** %5, align 8, !dbg !5313 | |
| %45 = getelementptr inbounds double, double* %44, i64 1, !dbg !5313 | |
| %46 = load double, double* %45, align 8, !dbg !5313 | |
| %47 = fmul double %43, %46, !dbg !5314 | |
| %48 = load double*, double** %4, align 8, !dbg !5315 | |
| %49 = getelementptr inbounds double, double* %48, i64 1, !dbg !5315 | |
| %50 = load double, double* %49, align 8, !dbg !5315 | |
| %51 = load double*, double** %5, align 8, !dbg !5316 | |
| %52 = getelementptr inbounds double, double* %51, i64 0, !dbg !5316 | |
| %53 = load double, double* %52, align 8, !dbg !5316 | |
| %54 = fmul double %50, %53, !dbg !5317 | |
| %55 = fsub double %47, %54, !dbg !5318 | |
| %56 = load double*, double** %6, align 8, !dbg !5319 | |
| %57 = getelementptr inbounds double, double* %56, i64 2, !dbg !5319 | |
| store double %55, double* %57, align 8, !dbg !5320 | |
| %58 = load double*, double** %6, align 8, !dbg !5321 | |
| ret double* %58, !dbg !5322 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @vector3Length(double* %0) #0 !dbg !5323 { | |
| %2 = alloca double*, align 8 | |
| store double* %0, double** %2, align 8 | |
| call void @llvm.dbg.declare(metadata double** %2, metadata !5324, metadata !DIExpression()), !dbg !5325 | |
| %3 = load double*, double** %2, align 8, !dbg !5326 | |
| %4 = call double @vector3LengthSquared(double* %3), !dbg !5327 | |
| %5 = call double @sqrt(double %4) #7, !dbg !5328 | |
| ret double %5, !dbg !5329 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double* @vector3ChangeLength(double* %0, double* %1, double %2) #0 !dbg !5330 { | |
| %4 = alloca double*, align 8 | |
| %5 = alloca double*, align 8 | |
| %6 = alloca double*, align 8 | |
| %7 = alloca double, align 8 | |
| %8 = alloca double, align 8 | |
| store double* %0, double** %5, align 8 | |
| call void @llvm.dbg.declare(metadata double** %5, metadata !5333, metadata !DIExpression()), !dbg !5334 | |
| store double* %1, double** %6, align 8 | |
| call void @llvm.dbg.declare(metadata double** %6, metadata !5335, metadata !DIExpression()), !dbg !5336 | |
| store double %2, double* %7, align 8 | |
| call void @llvm.dbg.declare(metadata double* %7, metadata !5337, metadata !DIExpression()), !dbg !5338 | |
| call void @llvm.dbg.declare(metadata double* %8, metadata !5339, metadata !DIExpression()), !dbg !5340 | |
| %9 = load double*, double** %5, align 8, !dbg !5341 | |
| %10 = call double @vector3Length(double* %9), !dbg !5342 | |
| store double %10, double* %8, align 8, !dbg !5340 | |
| %11 = load double, double* %8, align 8, !dbg !5343 | |
| %12 = fcmp ogt double %11, 0.000000e+00, !dbg !5345 | |
| br i1 %12, label %13, label %20, !dbg !5346 | |
| 13: ; preds = %3 | |
| %14 = load double*, double** %5, align 8, !dbg !5347 | |
| %15 = load double*, double** %6, align 8, !dbg !5349 | |
| %16 = load double, double* %7, align 8, !dbg !5350 | |
| %17 = load double, double* %8, align 8, !dbg !5351 | |
| %18 = fdiv double %16, %17, !dbg !5352 | |
| %19 = call double* @vector3Scale(double* %14, double* %15, double %18), !dbg !5353 | |
| store double* %19, double** %4, align 8, !dbg !5354 | |
| br label %29, !dbg !5354 | |
| 20: ; preds = %3 | |
| %21 = load double, double* %7, align 8, !dbg !5355 | |
| %22 = load double*, double** %6, align 8, !dbg !5357 | |
| %23 = getelementptr inbounds double, double* %22, i64 0, !dbg !5357 | |
| store double %21, double* %23, align 8, !dbg !5358 | |
| %24 = load double*, double** %6, align 8, !dbg !5359 | |
| %25 = getelementptr inbounds double, double* %24, i64 1, !dbg !5359 | |
| store double 0.000000e+00, double* %25, align 8, !dbg !5360 | |
| %26 = load double*, double** %6, align 8, !dbg !5361 | |
| %27 = getelementptr inbounds double, double* %26, i64 2, !dbg !5361 | |
| store double 0.000000e+00, double* %27, align 8, !dbg !5362 | |
| %28 = load double*, double** %6, align 8, !dbg !5363 | |
| store double* %28, double** %4, align 8, !dbg !5364 | |
| br label %29, !dbg !5364 | |
| 29: ; preds = %20, %13 | |
| %30 = load double*, double** %4, align 8, !dbg !5365 | |
| ret double* %30, !dbg !5365 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double* @vector3Scale(double* %0, double* %1, double %2) #0 !dbg !5366 { | |
| %4 = alloca double*, align 8 | |
| %5 = alloca double*, align 8 | |
| %6 = alloca double, align 8 | |
| %7 = alloca i32, align 4 | |
| store double* %0, double** %4, align 8 | |
| call void @llvm.dbg.declare(metadata double** %4, metadata !5367, metadata !DIExpression()), !dbg !5368 | |
| store double* %1, double** %5, align 8 | |
| call void @llvm.dbg.declare(metadata double** %5, metadata !5369, metadata !DIExpression()), !dbg !5370 | |
| store double %2, double* %6, align 8 | |
| call void @llvm.dbg.declare(metadata double* %6, metadata !5371, metadata !DIExpression()), !dbg !5372 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !5373, metadata !DIExpression()), !dbg !5374 | |
| store i32 0, i32* %7, align 4, !dbg !5375 | |
| br label %8, !dbg !5377 | |
| 8: ; preds = %23, %3 | |
| %9 = load i32, i32* %7, align 4, !dbg !5378 | |
| %10 = icmp slt i32 %9, 3, !dbg !5380 | |
| br i1 %10, label %11, label %26, !dbg !5381 | |
| 11: ; preds = %8 | |
| %12 = load double*, double** %4, align 8, !dbg !5382 | |
| %13 = load i32, i32* %7, align 4, !dbg !5383 | |
| %14 = sext i32 %13 to i64, !dbg !5382 | |
| %15 = getelementptr inbounds double, double* %12, i64 %14, !dbg !5382 | |
| %16 = load double, double* %15, align 8, !dbg !5382 | |
| %17 = load double, double* %6, align 8, !dbg !5384 | |
| %18 = fmul double %16, %17, !dbg !5385 | |
| %19 = load double*, double** %5, align 8, !dbg !5386 | |
| %20 = load i32, i32* %7, align 4, !dbg !5387 | |
| %21 = sext i32 %20 to i64, !dbg !5386 | |
| %22 = getelementptr inbounds double, double* %19, i64 %21, !dbg !5386 | |
| store double %18, double* %22, align 8, !dbg !5388 | |
| br label %23, !dbg !5386 | |
| 23: ; preds = %11 | |
| %24 = load i32, i32* %7, align 4, !dbg !5389 | |
| %25 = add nsw i32 %24, 1, !dbg !5389 | |
| store i32 %25, i32* %7, align 4, !dbg !5389 | |
| br label %8, !dbg !5390, !llvm.loop !5391 | |
| 26: ; preds = %8 | |
| %27 = load double*, double** %5, align 8, !dbg !5393 | |
| ret double* %27, !dbg !5394 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float* @vector3Convert(double* %0, float* %1) #0 !dbg !5395 { | |
| %3 = alloca double*, align 8 | |
| %4 = alloca float*, align 8 | |
| store double* %0, double** %3, align 8 | |
| call void @llvm.dbg.declare(metadata double** %3, metadata !5399, metadata !DIExpression()), !dbg !5400 | |
| store float* %1, float** %4, align 8 | |
| call void @llvm.dbg.declare(metadata float** %4, metadata !5401, metadata !DIExpression()), !dbg !5402 | |
| %5 = load double*, double** %3, align 8, !dbg !5403 | |
| %6 = getelementptr inbounds double, double* %5, i64 0, !dbg !5403 | |
| %7 = load double, double* %6, align 8, !dbg !5403 | |
| %8 = fptrunc double %7 to float, !dbg !5404 | |
| %9 = load float*, float** %4, align 8, !dbg !5405 | |
| %10 = getelementptr inbounds float, float* %9, i64 0, !dbg !5405 | |
| store float %8, float* %10, align 4, !dbg !5406 | |
| %11 = load double*, double** %3, align 8, !dbg !5407 | |
| %12 = getelementptr inbounds double, double* %11, i64 1, !dbg !5407 | |
| %13 = load double, double* %12, align 8, !dbg !5407 | |
| %14 = fptrunc double %13 to float, !dbg !5408 | |
| %15 = load float*, float** %4, align 8, !dbg !5409 | |
| %16 = getelementptr inbounds float, float* %15, i64 1, !dbg !5409 | |
| store float %14, float* %16, align 4, !dbg !5410 | |
| %17 = load double*, double** %3, align 8, !dbg !5411 | |
| %18 = getelementptr inbounds double, double* %17, i64 2, !dbg !5411 | |
| %19 = load double, double* %18, align 8, !dbg !5411 | |
| %20 = fptrunc double %19 to float, !dbg !5412 | |
| %21 = load float*, float** %4, align 8, !dbg !5413 | |
| %22 = getelementptr inbounds float, float* %21, i64 2, !dbg !5413 | |
| store float %20, float* %22, align 4, !dbg !5414 | |
| %23 = load float*, float** %4, align 8, !dbg !5415 | |
| ret float* %23, !dbg !5416 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double* @vector3Convertf(float* %0, double* %1) #0 !dbg !5417 { | |
| %3 = alloca float*, align 8 | |
| %4 = alloca double*, align 8 | |
| store float* %0, float** %3, align 8 | |
| call void @llvm.dbg.declare(metadata float** %3, metadata !5420, metadata !DIExpression()), !dbg !5421 | |
| store double* %1, double** %4, align 8 | |
| call void @llvm.dbg.declare(metadata double** %4, metadata !5422, metadata !DIExpression()), !dbg !5423 | |
| %5 = load float*, float** %3, align 8, !dbg !5424 | |
| %6 = getelementptr inbounds float, float* %5, i64 0, !dbg !5424 | |
| %7 = load float, float* %6, align 4, !dbg !5424 | |
| %8 = fpext float %7 to double, !dbg !5424 | |
| %9 = load double*, double** %4, align 8, !dbg !5425 | |
| %10 = getelementptr inbounds double, double* %9, i64 0, !dbg !5425 | |
| store double %8, double* %10, align 8, !dbg !5426 | |
| %11 = load float*, float** %3, align 8, !dbg !5427 | |
| %12 = getelementptr inbounds float, float* %11, i64 1, !dbg !5427 | |
| %13 = load float, float* %12, align 4, !dbg !5427 | |
| %14 = fpext float %13 to double, !dbg !5427 | |
| %15 = load double*, double** %4, align 8, !dbg !5428 | |
| %16 = getelementptr inbounds double, double* %15, i64 1, !dbg !5428 | |
| store double %14, double* %16, align 8, !dbg !5429 | |
| %17 = load float*, float** %3, align 8, !dbg !5430 | |
| %18 = getelementptr inbounds float, float* %17, i64 2, !dbg !5430 | |
| %19 = load float, float* %18, align 4, !dbg !5430 | |
| %20 = fpext float %19 to double, !dbg !5430 | |
| %21 = load double*, double** %4, align 8, !dbg !5431 | |
| %22 = getelementptr inbounds double, double* %21, i64 2, !dbg !5431 | |
| store double %20, double* %22, align 8, !dbg !5432 | |
| %23 = load double*, double** %4, align 8, !dbg !5433 | |
| ret double* %23, !dbg !5434 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double* @vector3Unit(double* %0, double* %1) #0 !dbg !5435 { | |
| %3 = alloca double*, align 8 | |
| %4 = alloca double*, align 8 | |
| %5 = alloca double*, align 8 | |
| %6 = alloca double, align 8 | |
| store double* %0, double** %4, align 8 | |
| call void @llvm.dbg.declare(metadata double** %4, metadata !5436, metadata !DIExpression()), !dbg !5437 | |
| store double* %1, double** %5, align 8 | |
| call void @llvm.dbg.declare(metadata double** %5, metadata !5438, metadata !DIExpression()), !dbg !5439 | |
| call void @llvm.dbg.declare(metadata double* %6, metadata !5440, metadata !DIExpression()), !dbg !5441 | |
| %7 = load double*, double** %4, align 8, !dbg !5442 | |
| %8 = call double @vector3Length(double* %7), !dbg !5443 | |
| store double %8, double* %6, align 8, !dbg !5441 | |
| %9 = load double, double* %6, align 8, !dbg !5444 | |
| %10 = fcmp ogt double %9, 0.000000e+00, !dbg !5446 | |
| br i1 %10, label %11, label %17, !dbg !5447 | |
| 11: ; preds = %2 | |
| %12 = load double*, double** %4, align 8, !dbg !5448 | |
| %13 = load double*, double** %5, align 8, !dbg !5449 | |
| %14 = load double, double* %6, align 8, !dbg !5450 | |
| %15 = fdiv double 1.000000e+00, %14, !dbg !5451 | |
| %16 = call double* @vector3Scale(double* %12, double* %13, double %15), !dbg !5452 | |
| store double* %16, double** %3, align 8, !dbg !5453 | |
| br label %25, !dbg !5453 | |
| 17: ; preds = %2 | |
| %18 = load double*, double** %5, align 8, !dbg !5454 | |
| %19 = getelementptr inbounds double, double* %18, i64 0, !dbg !5454 | |
| store double 1.000000e+00, double* %19, align 8, !dbg !5456 | |
| %20 = load double*, double** %5, align 8, !dbg !5457 | |
| %21 = getelementptr inbounds double, double* %20, i64 1, !dbg !5457 | |
| store double 0.000000e+00, double* %21, align 8, !dbg !5458 | |
| %22 = load double*, double** %5, align 8, !dbg !5459 | |
| %23 = getelementptr inbounds double, double* %22, i64 2, !dbg !5459 | |
| store double 0.000000e+00, double* %23, align 8, !dbg !5460 | |
| %24 = load double*, double** %5, align 8, !dbg !5461 | |
| store double* %24, double** %3, align 8, !dbg !5462 | |
| br label %25, !dbg !5462 | |
| 25: ; preds = %17, %11 | |
| %26 = load double*, double** %3, align 8, !dbg !5463 | |
| ret double* %26, !dbg !5463 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @vectorGet(%struct.Vector_t* %0, i32 %1) #0 !dbg !5464 { | |
| %3 = alloca double, align 8 | |
| %4 = alloca %struct.Vector_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| store %struct.Vector_t* %0, %struct.Vector_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %4, metadata !5469, metadata !DIExpression()), !dbg !5470 | |
| store i32 %1, i32* %5, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !5471, metadata !DIExpression()), !dbg !5472 | |
| %6 = load i32, i32* %5, align 4, !dbg !5473 | |
| %7 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5475 | |
| %8 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %7, i32 0, i32 0, !dbg !5476 | |
| %9 = load i32, i32* %8, align 8, !dbg !5476 | |
| %10 = icmp ult i32 %6, %9, !dbg !5477 | |
| br i1 %10, label %11, label %19, !dbg !5478 | |
| 11: ; preds = %2 | |
| %12 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5479 | |
| %13 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %12, i32 0, i32 1, !dbg !5480 | |
| %14 = load double*, double** %13, align 8, !dbg !5480 | |
| %15 = load i32, i32* %5, align 4, !dbg !5481 | |
| %16 = zext i32 %15 to i64, !dbg !5479 | |
| %17 = getelementptr inbounds double, double* %14, i64 %16, !dbg !5479 | |
| %18 = load double, double* %17, align 8, !dbg !5479 | |
| store double %18, double* %3, align 8, !dbg !5482 | |
| br label %20, !dbg !5482 | |
| 19: ; preds = %2 | |
| store double 0.000000e+00, double* %3, align 8, !dbg !5483 | |
| br label %20, !dbg !5483 | |
| 20: ; preds = %19, %11 | |
| %21 = load double, double* %3, align 8, !dbg !5484 | |
| ret double %21, !dbg !5484 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vector_t* @vectorSet(%struct.Vector_t* %0, i32 %1, double %2) #0 !dbg !5485 { | |
| %4 = alloca %struct.Vector_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca double, align 8 | |
| store %struct.Vector_t* %0, %struct.Vector_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %4, metadata !5488, metadata !DIExpression()), !dbg !5489 | |
| store i32 %1, i32* %5, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !5490, metadata !DIExpression()), !dbg !5491 | |
| store double %2, double* %6, align 8 | |
| call void @llvm.dbg.declare(metadata double* %6, metadata !5492, metadata !DIExpression()), !dbg !5493 | |
| %7 = load i32, i32* %5, align 4, !dbg !5494 | |
| %8 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5496 | |
| %9 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %8, i32 0, i32 0, !dbg !5497 | |
| %10 = load i32, i32* %9, align 8, !dbg !5497 | |
| %11 = icmp ult i32 %7, %10, !dbg !5498 | |
| br i1 %11, label %12, label %20, !dbg !5499 | |
| 12: ; preds = %3 | |
| %13 = load double, double* %6, align 8, !dbg !5500 | |
| %14 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5501 | |
| %15 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %14, i32 0, i32 1, !dbg !5502 | |
| %16 = load double*, double** %15, align 8, !dbg !5502 | |
| %17 = load i32, i32* %5, align 4, !dbg !5503 | |
| %18 = zext i32 %17 to i64, !dbg !5501 | |
| %19 = getelementptr inbounds double, double* %16, i64 %18, !dbg !5501 | |
| store double %13, double* %19, align 8, !dbg !5504 | |
| br label %20, !dbg !5501 | |
| 20: ; preds = %12, %3 | |
| %21 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5505 | |
| ret %struct.Vector_t* %21, !dbg !5506 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vector_t* @vectorAddToElement(%struct.Vector_t* %0, i32 %1, double %2) #0 !dbg !5507 { | |
| %4 = alloca %struct.Vector_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca double, align 8 | |
| store %struct.Vector_t* %0, %struct.Vector_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %4, metadata !5508, metadata !DIExpression()), !dbg !5509 | |
| store i32 %1, i32* %5, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !5510, metadata !DIExpression()), !dbg !5511 | |
| store double %2, double* %6, align 8 | |
| call void @llvm.dbg.declare(metadata double* %6, metadata !5512, metadata !DIExpression()), !dbg !5513 | |
| %7 = load i32, i32* %5, align 4, !dbg !5514 | |
| %8 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5516 | |
| %9 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %8, i32 0, i32 0, !dbg !5517 | |
| %10 = load i32, i32* %9, align 8, !dbg !5517 | |
| %11 = icmp ult i32 %7, %10, !dbg !5518 | |
| br i1 %11, label %12, label %22, !dbg !5519 | |
| 12: ; preds = %3 | |
| %13 = load double, double* %6, align 8, !dbg !5520 | |
| %14 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5521 | |
| %15 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %14, i32 0, i32 1, !dbg !5522 | |
| %16 = load double*, double** %15, align 8, !dbg !5522 | |
| %17 = load i32, i32* %5, align 4, !dbg !5523 | |
| %18 = zext i32 %17 to i64, !dbg !5521 | |
| %19 = getelementptr inbounds double, double* %16, i64 %18, !dbg !5521 | |
| %20 = load double, double* %19, align 8, !dbg !5524 | |
| %21 = fadd double %20, %13, !dbg !5524 | |
| store double %21, double* %19, align 8, !dbg !5524 | |
| br label %22, !dbg !5521 | |
| 22: ; preds = %12, %3 | |
| %23 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5525 | |
| ret %struct.Vector_t* %23, !dbg !5526 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vector_t* @vectorSetAll(%struct.Vector_t* %0, double %1) #0 !dbg !5527 { | |
| %3 = alloca %struct.Vector_t*, align 8 | |
| %4 = alloca double, align 8 | |
| %5 = alloca i32, align 4 | |
| store %struct.Vector_t* %0, %struct.Vector_t** %3, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %3, metadata !5530, metadata !DIExpression()), !dbg !5531 | |
| store double %1, double* %4, align 8 | |
| call void @llvm.dbg.declare(metadata double* %4, metadata !5532, metadata !DIExpression()), !dbg !5533 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !5534, metadata !DIExpression()), !dbg !5535 | |
| store i32 0, i32* %5, align 4, !dbg !5536 | |
| br label %6, !dbg !5538 | |
| 6: ; preds = %20, %2 | |
| %7 = load i32, i32* %5, align 4, !dbg !5539 | |
| %8 = load %struct.Vector_t*, %struct.Vector_t** %3, align 8, !dbg !5541 | |
| %9 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %8, i32 0, i32 0, !dbg !5542 | |
| %10 = load i32, i32* %9, align 8, !dbg !5542 | |
| %11 = icmp ult i32 %7, %10, !dbg !5543 | |
| br i1 %11, label %12, label %23, !dbg !5544 | |
| 12: ; preds = %6 | |
| %13 = load double, double* %4, align 8, !dbg !5545 | |
| %14 = load %struct.Vector_t*, %struct.Vector_t** %3, align 8, !dbg !5546 | |
| %15 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %14, i32 0, i32 1, !dbg !5547 | |
| %16 = load double*, double** %15, align 8, !dbg !5547 | |
| %17 = load i32, i32* %5, align 4, !dbg !5548 | |
| %18 = zext i32 %17 to i64, !dbg !5546 | |
| %19 = getelementptr inbounds double, double* %16, i64 %18, !dbg !5546 | |
| store double %13, double* %19, align 8, !dbg !5549 | |
| br label %20, !dbg !5546 | |
| 20: ; preds = %12 | |
| %21 = load i32, i32* %5, align 4, !dbg !5550 | |
| %22 = add i32 %21, 1, !dbg !5550 | |
| store i32 %22, i32* %5, align 4, !dbg !5550 | |
| br label %6, !dbg !5551, !llvm.loop !5552 | |
| 23: ; preds = %6 | |
| %24 = load %struct.Vector_t*, %struct.Vector_t** %3, align 8, !dbg !5554 | |
| ret %struct.Vector_t* %24, !dbg !5555 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vector_t* @vectorAllocate(i32 %0) #0 !dbg !5556 { | |
| %2 = alloca i32, align 4 | |
| %3 = alloca %struct.Vector_t*, align 8 | |
| %4 = alloca i8*, align 8 | |
| store i32 %0, i32* %2, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %2, metadata !5559, metadata !DIExpression()), !dbg !5560 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %3, metadata !5561, metadata !DIExpression()), !dbg !5562 | |
| %5 = load i32, i32* %2, align 4, !dbg !5563 | |
| %6 = zext i32 %5 to i64, !dbg !5563 | |
| %7 = mul i64 8, %6, !dbg !5564 | |
| %8 = add i64 16, %7, !dbg !5565 | |
| %9 = call noalias i8* @malloc(i64 %8) #7, !dbg !5566 | |
| %10 = bitcast i8* %9 to %struct.Vector_t*, !dbg !5567 | |
| store %struct.Vector_t* %10, %struct.Vector_t** %3, align 8, !dbg !5562 | |
| %11 = load %struct.Vector_t*, %struct.Vector_t** %3, align 8, !dbg !5568 | |
| %12 = icmp ne %struct.Vector_t* %11, null, !dbg !5568 | |
| br i1 %12, label %13, label %27, !dbg !5570 | |
| 13: ; preds = %1 | |
| call void @llvm.dbg.declare(metadata i8** %4, metadata !5571, metadata !DIExpression()), !dbg !5573 | |
| %14 = load %struct.Vector_t*, %struct.Vector_t** %3, align 8, !dbg !5574 | |
| %15 = bitcast %struct.Vector_t* %14 to i8*, !dbg !5575 | |
| store i8* %15, i8** %4, align 8, !dbg !5573 | |
| %16 = load i8*, i8** %4, align 8, !dbg !5576 | |
| %17 = getelementptr inbounds i8, i8* %16, i64 16, !dbg !5576 | |
| store i8* %17, i8** %4, align 8, !dbg !5576 | |
| %18 = load i8*, i8** %4, align 8, !dbg !5577 | |
| %19 = bitcast i8* %18 to double*, !dbg !5578 | |
| %20 = load %struct.Vector_t*, %struct.Vector_t** %3, align 8, !dbg !5579 | |
| %21 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %20, i32 0, i32 1, !dbg !5580 | |
| store double* %19, double** %21, align 8, !dbg !5581 | |
| %22 = load i32, i32* %2, align 4, !dbg !5582 | |
| %23 = load %struct.Vector_t*, %struct.Vector_t** %3, align 8, !dbg !5583 | |
| %24 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %23, i32 0, i32 0, !dbg !5584 | |
| store i32 %22, i32* %24, align 8, !dbg !5585 | |
| %25 = load %struct.Vector_t*, %struct.Vector_t** %3, align 8, !dbg !5586 | |
| %26 = call %struct.Vector_t* @vectorZero(%struct.Vector_t* %25), !dbg !5587 | |
| br label %27, !dbg !5588 | |
| 27: ; preds = %13, %1 | |
| %28 = load %struct.Vector_t*, %struct.Vector_t** %3, align 8, !dbg !5589 | |
| ret %struct.Vector_t* %28, !dbg !5590 | |
| } | |
| ; Function Attrs: nounwind | |
| declare dso_local noalias i8* @malloc(i64) #5 | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vector_t* @vectorZero(%struct.Vector_t* %0) #0 !dbg !5591 { | |
| %2 = alloca %struct.Vector_t*, align 8 | |
| store %struct.Vector_t* %0, %struct.Vector_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %2, metadata !5594, metadata !DIExpression()), !dbg !5595 | |
| %3 = load %struct.Vector_t*, %struct.Vector_t** %2, align 8, !dbg !5596 | |
| %4 = call %struct.Vector_t* @vectorSetAll(%struct.Vector_t* %3, double 0.000000e+00), !dbg !5597 | |
| ret %struct.Vector_t* %4, !dbg !5598 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vector_t* @vectorChangeAllocateSize(%struct.Vector_t* %0, i32 %1, double %2) #0 !dbg !5599 { | |
| %4 = alloca %struct.Vector_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca double, align 8 | |
| %7 = alloca %struct.Vector_t*, align 8 | |
| %8 = alloca i8*, align 8 | |
| store %struct.Vector_t* %0, %struct.Vector_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %4, metadata !5600, metadata !DIExpression()), !dbg !5601 | |
| store i32 %1, i32* %5, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !5602, metadata !DIExpression()), !dbg !5603 | |
| store double %2, double* %6, align 8 | |
| call void @llvm.dbg.declare(metadata double* %6, metadata !5604, metadata !DIExpression()), !dbg !5605 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %7, metadata !5606, metadata !DIExpression()), !dbg !5607 | |
| %9 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5608 | |
| %10 = bitcast %struct.Vector_t* %9 to i8*, !dbg !5608 | |
| %11 = load i32, i32* %5, align 4, !dbg !5609 | |
| %12 = zext i32 %11 to i64, !dbg !5609 | |
| %13 = mul i64 8, %12, !dbg !5610 | |
| %14 = add i64 16, %13, !dbg !5611 | |
| %15 = call i8* @realloc(i8* %10, i64 %14) #7, !dbg !5612 | |
| %16 = bitcast i8* %15 to %struct.Vector_t*, !dbg !5613 | |
| store %struct.Vector_t* %16, %struct.Vector_t** %7, align 8, !dbg !5607 | |
| %17 = load %struct.Vector_t*, %struct.Vector_t** %7, align 8, !dbg !5614 | |
| %18 = icmp ne %struct.Vector_t* %17, null, !dbg !5614 | |
| br i1 %18, label %19, label %31, !dbg !5616 | |
| 19: ; preds = %3 | |
| call void @llvm.dbg.declare(metadata i8** %8, metadata !5617, metadata !DIExpression()), !dbg !5619 | |
| %20 = load %struct.Vector_t*, %struct.Vector_t** %7, align 8, !dbg !5620 | |
| %21 = bitcast %struct.Vector_t* %20 to i8*, !dbg !5621 | |
| store i8* %21, i8** %8, align 8, !dbg !5619 | |
| %22 = load i8*, i8** %8, align 8, !dbg !5622 | |
| %23 = getelementptr inbounds i8, i8* %22, i64 16, !dbg !5622 | |
| store i8* %23, i8** %8, align 8, !dbg !5622 | |
| %24 = load i8*, i8** %8, align 8, !dbg !5623 | |
| %25 = bitcast i8* %24 to double*, !dbg !5624 | |
| %26 = load %struct.Vector_t*, %struct.Vector_t** %7, align 8, !dbg !5625 | |
| %27 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %26, i32 0, i32 1, !dbg !5626 | |
| store double* %25, double** %27, align 8, !dbg !5627 | |
| %28 = load %struct.Vector_t*, %struct.Vector_t** %7, align 8, !dbg !5628 | |
| %29 = load i32, i32* %5, align 4, !dbg !5629 | |
| %30 = load double, double* %6, align 8, !dbg !5630 | |
| call void @vectorChangeSize(%struct.Vector_t* %28, i32 %29, double %30), !dbg !5631 | |
| br label %31, !dbg !5632 | |
| 31: ; preds = %19, %3 | |
| %32 = load %struct.Vector_t*, %struct.Vector_t** %7, align 8, !dbg !5633 | |
| ret %struct.Vector_t* %32, !dbg !5634 | |
| } | |
| ; Function Attrs: nounwind | |
| declare dso_local i8* @realloc(i8*, i64) #5 | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @vectorChangeSize(%struct.Vector_t* %0, i32 %1, double %2) #0 !dbg !5635 { | |
| %4 = alloca %struct.Vector_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca double, align 8 | |
| %7 = alloca i32, align 4 | |
| store %struct.Vector_t* %0, %struct.Vector_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %4, metadata !5638, metadata !DIExpression()), !dbg !5639 | |
| store i32 %1, i32* %5, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !5640, metadata !DIExpression()), !dbg !5641 | |
| store double %2, double* %6, align 8 | |
| call void @llvm.dbg.declare(metadata double* %6, metadata !5642, metadata !DIExpression()), !dbg !5643 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !5644, metadata !DIExpression()), !dbg !5645 | |
| %8 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5646 | |
| %9 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %8, i32 0, i32 0, !dbg !5648 | |
| %10 = load i32, i32* %9, align 8, !dbg !5648 | |
| store i32 %10, i32* %7, align 4, !dbg !5649 | |
| br label %11, !dbg !5650 | |
| 11: ; preds = %23, %3 | |
| %12 = load i32, i32* %7, align 4, !dbg !5651 | |
| %13 = load i32, i32* %5, align 4, !dbg !5653 | |
| %14 = icmp ult i32 %12, %13, !dbg !5654 | |
| br i1 %14, label %15, label %26, !dbg !5655 | |
| 15: ; preds = %11 | |
| %16 = load double, double* %6, align 8, !dbg !5656 | |
| %17 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5657 | |
| %18 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %17, i32 0, i32 1, !dbg !5658 | |
| %19 = load double*, double** %18, align 8, !dbg !5658 | |
| %20 = load i32, i32* %7, align 4, !dbg !5659 | |
| %21 = zext i32 %20 to i64, !dbg !5657 | |
| %22 = getelementptr inbounds double, double* %19, i64 %21, !dbg !5657 | |
| store double %16, double* %22, align 8, !dbg !5660 | |
| br label %23, !dbg !5657 | |
| 23: ; preds = %15 | |
| %24 = load i32, i32* %7, align 4, !dbg !5661 | |
| %25 = add i32 %24, 1, !dbg !5661 | |
| store i32 %25, i32* %7, align 4, !dbg !5661 | |
| br label %11, !dbg !5662, !llvm.loop !5663 | |
| 26: ; preds = %11 | |
| %27 = load i32, i32* %5, align 4, !dbg !5665 | |
| %28 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5666 | |
| %29 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %28, i32 0, i32 0, !dbg !5667 | |
| store i32 %27, i32* %29, align 8, !dbg !5668 | |
| ret void, !dbg !5669 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vector_t* @vectorCopy(%struct.Vector_t* %0, %struct.Vector_t* %1) #0 !dbg !5670 { | |
| %3 = alloca %struct.Vector_t*, align 8 | |
| %4 = alloca %struct.Vector_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca i32, align 4 | |
| store %struct.Vector_t* %0, %struct.Vector_t** %3, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %3, metadata !5673, metadata !DIExpression()), !dbg !5674 | |
| store %struct.Vector_t* %1, %struct.Vector_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %4, metadata !5675, metadata !DIExpression()), !dbg !5676 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !5677, metadata !DIExpression()), !dbg !5678 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !5679, metadata !DIExpression()), !dbg !5680 | |
| %7 = load %struct.Vector_t*, %struct.Vector_t** %3, align 8, !dbg !5681 | |
| %8 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %7, i32 0, i32 0, !dbg !5681 | |
| %9 = load i32, i32* %8, align 8, !dbg !5681 | |
| %10 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5681 | |
| %11 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %10, i32 0, i32 0, !dbg !5681 | |
| %12 = load i32, i32* %11, align 8, !dbg !5681 | |
| %13 = icmp ult i32 %9, %12, !dbg !5681 | |
| br i1 %13, label %14, label %18, !dbg !5681 | |
| 14: ; preds = %2 | |
| %15 = load %struct.Vector_t*, %struct.Vector_t** %3, align 8, !dbg !5681 | |
| %16 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %15, i32 0, i32 0, !dbg !5681 | |
| %17 = load i32, i32* %16, align 8, !dbg !5681 | |
| br label %22, !dbg !5681 | |
| 18: ; preds = %2 | |
| %19 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5681 | |
| %20 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %19, i32 0, i32 0, !dbg !5681 | |
| %21 = load i32, i32* %20, align 8, !dbg !5681 | |
| br label %22, !dbg !5681 | |
| 22: ; preds = %18, %14 | |
| %23 = phi i32 [ %17, %14 ], [ %21, %18 ], !dbg !5681 | |
| store i32 %23, i32* %6, align 4, !dbg !5680 | |
| store i32 0, i32* %5, align 4, !dbg !5682 | |
| br label %24, !dbg !5684 | |
| 24: ; preds = %42, %22 | |
| %25 = load i32, i32* %5, align 4, !dbg !5685 | |
| %26 = load i32, i32* %6, align 4, !dbg !5687 | |
| %27 = icmp ult i32 %25, %26, !dbg !5688 | |
| br i1 %27, label %28, label %45, !dbg !5689 | |
| 28: ; preds = %24 | |
| %29 = load %struct.Vector_t*, %struct.Vector_t** %3, align 8, !dbg !5690 | |
| %30 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %29, i32 0, i32 1, !dbg !5691 | |
| %31 = load double*, double** %30, align 8, !dbg !5691 | |
| %32 = load i32, i32* %5, align 4, !dbg !5692 | |
| %33 = zext i32 %32 to i64, !dbg !5690 | |
| %34 = getelementptr inbounds double, double* %31, i64 %33, !dbg !5690 | |
| %35 = load double, double* %34, align 8, !dbg !5690 | |
| %36 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5693 | |
| %37 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %36, i32 0, i32 1, !dbg !5694 | |
| %38 = load double*, double** %37, align 8, !dbg !5694 | |
| %39 = load i32, i32* %5, align 4, !dbg !5695 | |
| %40 = zext i32 %39 to i64, !dbg !5693 | |
| %41 = getelementptr inbounds double, double* %38, i64 %40, !dbg !5693 | |
| store double %35, double* %41, align 8, !dbg !5696 | |
| br label %42, !dbg !5693 | |
| 42: ; preds = %28 | |
| %43 = load i32, i32* %5, align 4, !dbg !5697 | |
| %44 = add i32 %43, 1, !dbg !5697 | |
| store i32 %44, i32* %5, align 4, !dbg !5697 | |
| br label %24, !dbg !5698, !llvm.loop !5699 | |
| 45: ; preds = %24 | |
| %46 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5701 | |
| ret %struct.Vector_t* %46, !dbg !5702 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vector_t* @vectorMultiplyAccumulate(%struct.Vector_t* %0, %struct.Vector_t* %1, double %2, %struct.Vector_t* %3) #0 !dbg !5703 { | |
| %5 = alloca %struct.Vector_t*, align 8 | |
| %6 = alloca %struct.Vector_t*, align 8 | |
| %7 = alloca double, align 8 | |
| %8 = alloca %struct.Vector_t*, align 8 | |
| %9 = alloca i32, align 4 | |
| %10 = alloca i32, align 4 | |
| store %struct.Vector_t* %0, %struct.Vector_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %5, metadata !5706, metadata !DIExpression()), !dbg !5707 | |
| store %struct.Vector_t* %1, %struct.Vector_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %6, metadata !5708, metadata !DIExpression()), !dbg !5709 | |
| store double %2, double* %7, align 8 | |
| call void @llvm.dbg.declare(metadata double* %7, metadata !5710, metadata !DIExpression()), !dbg !5711 | |
| store %struct.Vector_t* %3, %struct.Vector_t** %8, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %8, metadata !5712, metadata !DIExpression()), !dbg !5713 | |
| call void @llvm.dbg.declare(metadata i32* %9, metadata !5714, metadata !DIExpression()), !dbg !5715 | |
| call void @llvm.dbg.declare(metadata i32* %10, metadata !5716, metadata !DIExpression()), !dbg !5717 | |
| %11 = load %struct.Vector_t*, %struct.Vector_t** %8, align 8, !dbg !5718 | |
| %12 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %11, i32 0, i32 0, !dbg !5718 | |
| %13 = load i32, i32* %12, align 8, !dbg !5718 | |
| %14 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5718 | |
| %15 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %14, i32 0, i32 0, !dbg !5718 | |
| %16 = load i32, i32* %15, align 8, !dbg !5718 | |
| %17 = load %struct.Vector_t*, %struct.Vector_t** %6, align 8, !dbg !5718 | |
| %18 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %17, i32 0, i32 0, !dbg !5718 | |
| %19 = load i32, i32* %18, align 8, !dbg !5718 | |
| %20 = icmp ult i32 %16, %19, !dbg !5718 | |
| br i1 %20, label %21, label %25, !dbg !5718 | |
| 21: ; preds = %4 | |
| %22 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5718 | |
| %23 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %22, i32 0, i32 0, !dbg !5718 | |
| %24 = load i32, i32* %23, align 8, !dbg !5718 | |
| br label %29, !dbg !5718 | |
| 25: ; preds = %4 | |
| %26 = load %struct.Vector_t*, %struct.Vector_t** %6, align 8, !dbg !5718 | |
| %27 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %26, i32 0, i32 0, !dbg !5718 | |
| %28 = load i32, i32* %27, align 8, !dbg !5718 | |
| br label %29, !dbg !5718 | |
| 29: ; preds = %25, %21 | |
| %30 = phi i32 [ %24, %21 ], [ %28, %25 ], !dbg !5718 | |
| %31 = icmp ult i32 %13, %30, !dbg !5718 | |
| br i1 %31, label %32, label %36, !dbg !5718 | |
| 32: ; preds = %29 | |
| %33 = load %struct.Vector_t*, %struct.Vector_t** %8, align 8, !dbg !5718 | |
| %34 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %33, i32 0, i32 0, !dbg !5718 | |
| %35 = load i32, i32* %34, align 8, !dbg !5718 | |
| br label %54, !dbg !5718 | |
| 36: ; preds = %29 | |
| %37 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5718 | |
| %38 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %37, i32 0, i32 0, !dbg !5718 | |
| %39 = load i32, i32* %38, align 8, !dbg !5718 | |
| %40 = load %struct.Vector_t*, %struct.Vector_t** %6, align 8, !dbg !5718 | |
| %41 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %40, i32 0, i32 0, !dbg !5718 | |
| %42 = load i32, i32* %41, align 8, !dbg !5718 | |
| %43 = icmp ult i32 %39, %42, !dbg !5718 | |
| br i1 %43, label %44, label %48, !dbg !5718 | |
| 44: ; preds = %36 | |
| %45 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5718 | |
| %46 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %45, i32 0, i32 0, !dbg !5718 | |
| %47 = load i32, i32* %46, align 8, !dbg !5718 | |
| br label %52, !dbg !5718 | |
| 48: ; preds = %36 | |
| %49 = load %struct.Vector_t*, %struct.Vector_t** %6, align 8, !dbg !5718 | |
| %50 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %49, i32 0, i32 0, !dbg !5718 | |
| %51 = load i32, i32* %50, align 8, !dbg !5718 | |
| br label %52, !dbg !5718 | |
| 52: ; preds = %48, %44 | |
| %53 = phi i32 [ %47, %44 ], [ %51, %48 ], !dbg !5718 | |
| br label %54, !dbg !5718 | |
| 54: ; preds = %52, %32 | |
| %55 = phi i32 [ %35, %32 ], [ %53, %52 ], !dbg !5718 | |
| store i32 %55, i32* %10, align 4, !dbg !5717 | |
| store i32 0, i32* %9, align 4, !dbg !5719 | |
| br label %56, !dbg !5721 | |
| 56: ; preds = %84, %54 | |
| %57 = load i32, i32* %9, align 4, !dbg !5722 | |
| %58 = load i32, i32* %10, align 4, !dbg !5724 | |
| %59 = icmp ult i32 %57, %58, !dbg !5725 | |
| br i1 %59, label %60, label %87, !dbg !5726 | |
| 60: ; preds = %56 | |
| %61 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5727 | |
| %62 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %61, i32 0, i32 1, !dbg !5728 | |
| %63 = load double*, double** %62, align 8, !dbg !5728 | |
| %64 = load i32, i32* %9, align 4, !dbg !5729 | |
| %65 = zext i32 %64 to i64, !dbg !5727 | |
| %66 = getelementptr inbounds double, double* %63, i64 %65, !dbg !5727 | |
| %67 = load double, double* %66, align 8, !dbg !5727 | |
| %68 = load %struct.Vector_t*, %struct.Vector_t** %6, align 8, !dbg !5730 | |
| %69 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %68, i32 0, i32 1, !dbg !5731 | |
| %70 = load double*, double** %69, align 8, !dbg !5731 | |
| %71 = load i32, i32* %9, align 4, !dbg !5732 | |
| %72 = zext i32 %71 to i64, !dbg !5730 | |
| %73 = getelementptr inbounds double, double* %70, i64 %72, !dbg !5730 | |
| %74 = load double, double* %73, align 8, !dbg !5730 | |
| %75 = load double, double* %7, align 8, !dbg !5733 | |
| %76 = fmul double %74, %75, !dbg !5734 | |
| %77 = fadd double %67, %76, !dbg !5735 | |
| %78 = load %struct.Vector_t*, %struct.Vector_t** %8, align 8, !dbg !5736 | |
| %79 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %78, i32 0, i32 1, !dbg !5737 | |
| %80 = load double*, double** %79, align 8, !dbg !5737 | |
| %81 = load i32, i32* %9, align 4, !dbg !5738 | |
| %82 = zext i32 %81 to i64, !dbg !5736 | |
| %83 = getelementptr inbounds double, double* %80, i64 %82, !dbg !5736 | |
| store double %77, double* %83, align 8, !dbg !5739 | |
| br label %84, !dbg !5736 | |
| 84: ; preds = %60 | |
| %85 = load i32, i32* %9, align 4, !dbg !5740 | |
| %86 = add i32 %85, 1, !dbg !5740 | |
| store i32 %86, i32* %9, align 4, !dbg !5740 | |
| br label %56, !dbg !5741, !llvm.loop !5742 | |
| 87: ; preds = %56 | |
| %88 = load %struct.Vector_t*, %struct.Vector_t** %8, align 8, !dbg !5744 | |
| ret %struct.Vector_t* %88, !dbg !5745 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vector_t* @vectorSum(%struct.Vector_t* %0, %struct.Vector_t* %1, %struct.Vector_t* %2) #0 !dbg !5746 { | |
| %4 = alloca %struct.Vector_t*, align 8 | |
| %5 = alloca %struct.Vector_t*, align 8 | |
| %6 = alloca %struct.Vector_t*, align 8 | |
| %7 = alloca i32, align 4 | |
| %8 = alloca i32, align 4 | |
| store %struct.Vector_t* %0, %struct.Vector_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %4, metadata !5749, metadata !DIExpression()), !dbg !5750 | |
| store %struct.Vector_t* %1, %struct.Vector_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %5, metadata !5751, metadata !DIExpression()), !dbg !5752 | |
| store %struct.Vector_t* %2, %struct.Vector_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %6, metadata !5753, metadata !DIExpression()), !dbg !5754 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !5755, metadata !DIExpression()), !dbg !5756 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !5757, metadata !DIExpression()), !dbg !5758 | |
| %9 = load %struct.Vector_t*, %struct.Vector_t** %6, align 8, !dbg !5759 | |
| %10 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %9, i32 0, i32 0, !dbg !5759 | |
| %11 = load i32, i32* %10, align 8, !dbg !5759 | |
| %12 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5759 | |
| %13 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %12, i32 0, i32 0, !dbg !5759 | |
| %14 = load i32, i32* %13, align 8, !dbg !5759 | |
| %15 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5759 | |
| %16 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %15, i32 0, i32 0, !dbg !5759 | |
| %17 = load i32, i32* %16, align 8, !dbg !5759 | |
| %18 = icmp ult i32 %14, %17, !dbg !5759 | |
| br i1 %18, label %19, label %23, !dbg !5759 | |
| 19: ; preds = %3 | |
| %20 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5759 | |
| %21 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %20, i32 0, i32 0, !dbg !5759 | |
| %22 = load i32, i32* %21, align 8, !dbg !5759 | |
| br label %27, !dbg !5759 | |
| 23: ; preds = %3 | |
| %24 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5759 | |
| %25 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %24, i32 0, i32 0, !dbg !5759 | |
| %26 = load i32, i32* %25, align 8, !dbg !5759 | |
| br label %27, !dbg !5759 | |
| 27: ; preds = %23, %19 | |
| %28 = phi i32 [ %22, %19 ], [ %26, %23 ], !dbg !5759 | |
| %29 = icmp ult i32 %11, %28, !dbg !5759 | |
| br i1 %29, label %30, label %34, !dbg !5759 | |
| 30: ; preds = %27 | |
| %31 = load %struct.Vector_t*, %struct.Vector_t** %6, align 8, !dbg !5759 | |
| %32 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %31, i32 0, i32 0, !dbg !5759 | |
| %33 = load i32, i32* %32, align 8, !dbg !5759 | |
| br label %52, !dbg !5759 | |
| 34: ; preds = %27 | |
| %35 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5759 | |
| %36 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %35, i32 0, i32 0, !dbg !5759 | |
| %37 = load i32, i32* %36, align 8, !dbg !5759 | |
| %38 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5759 | |
| %39 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %38, i32 0, i32 0, !dbg !5759 | |
| %40 = load i32, i32* %39, align 8, !dbg !5759 | |
| %41 = icmp ult i32 %37, %40, !dbg !5759 | |
| br i1 %41, label %42, label %46, !dbg !5759 | |
| 42: ; preds = %34 | |
| %43 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5759 | |
| %44 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %43, i32 0, i32 0, !dbg !5759 | |
| %45 = load i32, i32* %44, align 8, !dbg !5759 | |
| br label %50, !dbg !5759 | |
| 46: ; preds = %34 | |
| %47 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5759 | |
| %48 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %47, i32 0, i32 0, !dbg !5759 | |
| %49 = load i32, i32* %48, align 8, !dbg !5759 | |
| br label %50, !dbg !5759 | |
| 50: ; preds = %46, %42 | |
| %51 = phi i32 [ %45, %42 ], [ %49, %46 ], !dbg !5759 | |
| br label %52, !dbg !5759 | |
| 52: ; preds = %50, %30 | |
| %53 = phi i32 [ %33, %30 ], [ %51, %50 ], !dbg !5759 | |
| store i32 %53, i32* %8, align 4, !dbg !5758 | |
| store i32 0, i32* %7, align 4, !dbg !5760 | |
| br label %54, !dbg !5762 | |
| 54: ; preds = %80, %52 | |
| %55 = load i32, i32* %7, align 4, !dbg !5763 | |
| %56 = load i32, i32* %8, align 4, !dbg !5765 | |
| %57 = icmp ult i32 %55, %56, !dbg !5766 | |
| br i1 %57, label %58, label %83, !dbg !5767 | |
| 58: ; preds = %54 | |
| %59 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5768 | |
| %60 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %59, i32 0, i32 1, !dbg !5769 | |
| %61 = load double*, double** %60, align 8, !dbg !5769 | |
| %62 = load i32, i32* %7, align 4, !dbg !5770 | |
| %63 = zext i32 %62 to i64, !dbg !5768 | |
| %64 = getelementptr inbounds double, double* %61, i64 %63, !dbg !5768 | |
| %65 = load double, double* %64, align 8, !dbg !5768 | |
| %66 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5771 | |
| %67 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %66, i32 0, i32 1, !dbg !5772 | |
| %68 = load double*, double** %67, align 8, !dbg !5772 | |
| %69 = load i32, i32* %7, align 4, !dbg !5773 | |
| %70 = zext i32 %69 to i64, !dbg !5771 | |
| %71 = getelementptr inbounds double, double* %68, i64 %70, !dbg !5771 | |
| %72 = load double, double* %71, align 8, !dbg !5771 | |
| %73 = fadd double %65, %72, !dbg !5774 | |
| %74 = load %struct.Vector_t*, %struct.Vector_t** %6, align 8, !dbg !5775 | |
| %75 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %74, i32 0, i32 1, !dbg !5776 | |
| %76 = load double*, double** %75, align 8, !dbg !5776 | |
| %77 = load i32, i32* %7, align 4, !dbg !5777 | |
| %78 = zext i32 %77 to i64, !dbg !5775 | |
| %79 = getelementptr inbounds double, double* %76, i64 %78, !dbg !5775 | |
| store double %73, double* %79, align 8, !dbg !5778 | |
| br label %80, !dbg !5775 | |
| 80: ; preds = %58 | |
| %81 = load i32, i32* %7, align 4, !dbg !5779 | |
| %82 = add i32 %81, 1, !dbg !5779 | |
| store i32 %82, i32* %7, align 4, !dbg !5779 | |
| br label %54, !dbg !5780, !llvm.loop !5781 | |
| 83: ; preds = %54 | |
| %84 = load %struct.Vector_t*, %struct.Vector_t** %6, align 8, !dbg !5783 | |
| ret %struct.Vector_t* %84, !dbg !5784 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vector_t* @vectorDifference(%struct.Vector_t* %0, %struct.Vector_t* %1, %struct.Vector_t* %2) #0 !dbg !5785 { | |
| %4 = alloca %struct.Vector_t*, align 8 | |
| %5 = alloca %struct.Vector_t*, align 8 | |
| %6 = alloca %struct.Vector_t*, align 8 | |
| %7 = alloca i32, align 4 | |
| %8 = alloca i32, align 4 | |
| store %struct.Vector_t* %0, %struct.Vector_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %4, metadata !5786, metadata !DIExpression()), !dbg !5787 | |
| store %struct.Vector_t* %1, %struct.Vector_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %5, metadata !5788, metadata !DIExpression()), !dbg !5789 | |
| store %struct.Vector_t* %2, %struct.Vector_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %6, metadata !5790, metadata !DIExpression()), !dbg !5791 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !5792, metadata !DIExpression()), !dbg !5793 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !5794, metadata !DIExpression()), !dbg !5795 | |
| %9 = load %struct.Vector_t*, %struct.Vector_t** %6, align 8, !dbg !5796 | |
| %10 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %9, i32 0, i32 0, !dbg !5796 | |
| %11 = load i32, i32* %10, align 8, !dbg !5796 | |
| %12 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5796 | |
| %13 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %12, i32 0, i32 0, !dbg !5796 | |
| %14 = load i32, i32* %13, align 8, !dbg !5796 | |
| %15 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5796 | |
| %16 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %15, i32 0, i32 0, !dbg !5796 | |
| %17 = load i32, i32* %16, align 8, !dbg !5796 | |
| %18 = icmp ult i32 %14, %17, !dbg !5796 | |
| br i1 %18, label %19, label %23, !dbg !5796 | |
| 19: ; preds = %3 | |
| %20 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5796 | |
| %21 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %20, i32 0, i32 0, !dbg !5796 | |
| %22 = load i32, i32* %21, align 8, !dbg !5796 | |
| br label %27, !dbg !5796 | |
| 23: ; preds = %3 | |
| %24 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5796 | |
| %25 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %24, i32 0, i32 0, !dbg !5796 | |
| %26 = load i32, i32* %25, align 8, !dbg !5796 | |
| br label %27, !dbg !5796 | |
| 27: ; preds = %23, %19 | |
| %28 = phi i32 [ %22, %19 ], [ %26, %23 ], !dbg !5796 | |
| %29 = icmp ult i32 %11, %28, !dbg !5796 | |
| br i1 %29, label %30, label %34, !dbg !5796 | |
| 30: ; preds = %27 | |
| %31 = load %struct.Vector_t*, %struct.Vector_t** %6, align 8, !dbg !5796 | |
| %32 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %31, i32 0, i32 0, !dbg !5796 | |
| %33 = load i32, i32* %32, align 8, !dbg !5796 | |
| br label %52, !dbg !5796 | |
| 34: ; preds = %27 | |
| %35 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5796 | |
| %36 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %35, i32 0, i32 0, !dbg !5796 | |
| %37 = load i32, i32* %36, align 8, !dbg !5796 | |
| %38 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5796 | |
| %39 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %38, i32 0, i32 0, !dbg !5796 | |
| %40 = load i32, i32* %39, align 8, !dbg !5796 | |
| %41 = icmp ult i32 %37, %40, !dbg !5796 | |
| br i1 %41, label %42, label %46, !dbg !5796 | |
| 42: ; preds = %34 | |
| %43 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5796 | |
| %44 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %43, i32 0, i32 0, !dbg !5796 | |
| %45 = load i32, i32* %44, align 8, !dbg !5796 | |
| br label %50, !dbg !5796 | |
| 46: ; preds = %34 | |
| %47 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5796 | |
| %48 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %47, i32 0, i32 0, !dbg !5796 | |
| %49 = load i32, i32* %48, align 8, !dbg !5796 | |
| br label %50, !dbg !5796 | |
| 50: ; preds = %46, %42 | |
| %51 = phi i32 [ %45, %42 ], [ %49, %46 ], !dbg !5796 | |
| br label %52, !dbg !5796 | |
| 52: ; preds = %50, %30 | |
| %53 = phi i32 [ %33, %30 ], [ %51, %50 ], !dbg !5796 | |
| store i32 %53, i32* %8, align 4, !dbg !5795 | |
| store i32 0, i32* %7, align 4, !dbg !5797 | |
| br label %54, !dbg !5799 | |
| 54: ; preds = %80, %52 | |
| %55 = load i32, i32* %7, align 4, !dbg !5800 | |
| %56 = load i32, i32* %8, align 4, !dbg !5802 | |
| %57 = icmp ult i32 %55, %56, !dbg !5803 | |
| br i1 %57, label %58, label %83, !dbg !5804 | |
| 58: ; preds = %54 | |
| %59 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5805 | |
| %60 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %59, i32 0, i32 1, !dbg !5806 | |
| %61 = load double*, double** %60, align 8, !dbg !5806 | |
| %62 = load i32, i32* %7, align 4, !dbg !5807 | |
| %63 = zext i32 %62 to i64, !dbg !5805 | |
| %64 = getelementptr inbounds double, double* %61, i64 %63, !dbg !5805 | |
| %65 = load double, double* %64, align 8, !dbg !5805 | |
| %66 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5808 | |
| %67 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %66, i32 0, i32 1, !dbg !5809 | |
| %68 = load double*, double** %67, align 8, !dbg !5809 | |
| %69 = load i32, i32* %7, align 4, !dbg !5810 | |
| %70 = zext i32 %69 to i64, !dbg !5808 | |
| %71 = getelementptr inbounds double, double* %68, i64 %70, !dbg !5808 | |
| %72 = load double, double* %71, align 8, !dbg !5808 | |
| %73 = fsub double %65, %72, !dbg !5811 | |
| %74 = load %struct.Vector_t*, %struct.Vector_t** %6, align 8, !dbg !5812 | |
| %75 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %74, i32 0, i32 1, !dbg !5813 | |
| %76 = load double*, double** %75, align 8, !dbg !5813 | |
| %77 = load i32, i32* %7, align 4, !dbg !5814 | |
| %78 = zext i32 %77 to i64, !dbg !5812 | |
| %79 = getelementptr inbounds double, double* %76, i64 %78, !dbg !5812 | |
| store double %73, double* %79, align 8, !dbg !5815 | |
| br label %80, !dbg !5812 | |
| 80: ; preds = %58 | |
| %81 = load i32, i32* %7, align 4, !dbg !5816 | |
| %82 = add i32 %81, 1, !dbg !5816 | |
| store i32 %82, i32* %7, align 4, !dbg !5816 | |
| br label %54, !dbg !5817, !llvm.loop !5818 | |
| 83: ; preds = %54 | |
| %84 = load %struct.Vector_t*, %struct.Vector_t** %6, align 8, !dbg !5820 | |
| ret %struct.Vector_t* %84, !dbg !5821 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vector_t* @vectorMultiply(%struct.Vector_t* %0, %struct.Vector_t* %1, %struct.Vector_t* %2) #0 !dbg !5822 { | |
| %4 = alloca %struct.Vector_t*, align 8 | |
| %5 = alloca %struct.Vector_t*, align 8 | |
| %6 = alloca %struct.Vector_t*, align 8 | |
| %7 = alloca i32, align 4 | |
| %8 = alloca i32, align 4 | |
| store %struct.Vector_t* %0, %struct.Vector_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %4, metadata !5823, metadata !DIExpression()), !dbg !5824 | |
| store %struct.Vector_t* %1, %struct.Vector_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %5, metadata !5825, metadata !DIExpression()), !dbg !5826 | |
| store %struct.Vector_t* %2, %struct.Vector_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %6, metadata !5827, metadata !DIExpression()), !dbg !5828 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !5829, metadata !DIExpression()), !dbg !5830 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !5831, metadata !DIExpression()), !dbg !5832 | |
| %9 = load %struct.Vector_t*, %struct.Vector_t** %6, align 8, !dbg !5833 | |
| %10 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %9, i32 0, i32 0, !dbg !5833 | |
| %11 = load i32, i32* %10, align 8, !dbg !5833 | |
| %12 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5833 | |
| %13 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %12, i32 0, i32 0, !dbg !5833 | |
| %14 = load i32, i32* %13, align 8, !dbg !5833 | |
| %15 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5833 | |
| %16 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %15, i32 0, i32 0, !dbg !5833 | |
| %17 = load i32, i32* %16, align 8, !dbg !5833 | |
| %18 = icmp ult i32 %14, %17, !dbg !5833 | |
| br i1 %18, label %19, label %23, !dbg !5833 | |
| 19: ; preds = %3 | |
| %20 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5833 | |
| %21 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %20, i32 0, i32 0, !dbg !5833 | |
| %22 = load i32, i32* %21, align 8, !dbg !5833 | |
| br label %27, !dbg !5833 | |
| 23: ; preds = %3 | |
| %24 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5833 | |
| %25 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %24, i32 0, i32 0, !dbg !5833 | |
| %26 = load i32, i32* %25, align 8, !dbg !5833 | |
| br label %27, !dbg !5833 | |
| 27: ; preds = %23, %19 | |
| %28 = phi i32 [ %22, %19 ], [ %26, %23 ], !dbg !5833 | |
| %29 = icmp ult i32 %11, %28, !dbg !5833 | |
| br i1 %29, label %30, label %34, !dbg !5833 | |
| 30: ; preds = %27 | |
| %31 = load %struct.Vector_t*, %struct.Vector_t** %6, align 8, !dbg !5833 | |
| %32 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %31, i32 0, i32 0, !dbg !5833 | |
| %33 = load i32, i32* %32, align 8, !dbg !5833 | |
| br label %52, !dbg !5833 | |
| 34: ; preds = %27 | |
| %35 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5833 | |
| %36 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %35, i32 0, i32 0, !dbg !5833 | |
| %37 = load i32, i32* %36, align 8, !dbg !5833 | |
| %38 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5833 | |
| %39 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %38, i32 0, i32 0, !dbg !5833 | |
| %40 = load i32, i32* %39, align 8, !dbg !5833 | |
| %41 = icmp ult i32 %37, %40, !dbg !5833 | |
| br i1 %41, label %42, label %46, !dbg !5833 | |
| 42: ; preds = %34 | |
| %43 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5833 | |
| %44 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %43, i32 0, i32 0, !dbg !5833 | |
| %45 = load i32, i32* %44, align 8, !dbg !5833 | |
| br label %50, !dbg !5833 | |
| 46: ; preds = %34 | |
| %47 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5833 | |
| %48 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %47, i32 0, i32 0, !dbg !5833 | |
| %49 = load i32, i32* %48, align 8, !dbg !5833 | |
| br label %50, !dbg !5833 | |
| 50: ; preds = %46, %42 | |
| %51 = phi i32 [ %45, %42 ], [ %49, %46 ], !dbg !5833 | |
| br label %52, !dbg !5833 | |
| 52: ; preds = %50, %30 | |
| %53 = phi i32 [ %33, %30 ], [ %51, %50 ], !dbg !5833 | |
| store i32 %53, i32* %8, align 4, !dbg !5832 | |
| store i32 0, i32* %7, align 4, !dbg !5834 | |
| br label %54, !dbg !5836 | |
| 54: ; preds = %80, %52 | |
| %55 = load i32, i32* %7, align 4, !dbg !5837 | |
| %56 = load i32, i32* %8, align 4, !dbg !5839 | |
| %57 = icmp ult i32 %55, %56, !dbg !5840 | |
| br i1 %57, label %58, label %83, !dbg !5841 | |
| 58: ; preds = %54 | |
| %59 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5842 | |
| %60 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %59, i32 0, i32 1, !dbg !5843 | |
| %61 = load double*, double** %60, align 8, !dbg !5843 | |
| %62 = load i32, i32* %7, align 4, !dbg !5844 | |
| %63 = zext i32 %62 to i64, !dbg !5842 | |
| %64 = getelementptr inbounds double, double* %61, i64 %63, !dbg !5842 | |
| %65 = load double, double* %64, align 8, !dbg !5842 | |
| %66 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5845 | |
| %67 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %66, i32 0, i32 1, !dbg !5846 | |
| %68 = load double*, double** %67, align 8, !dbg !5846 | |
| %69 = load i32, i32* %7, align 4, !dbg !5847 | |
| %70 = zext i32 %69 to i64, !dbg !5845 | |
| %71 = getelementptr inbounds double, double* %68, i64 %70, !dbg !5845 | |
| %72 = load double, double* %71, align 8, !dbg !5845 | |
| %73 = fmul double %65, %72, !dbg !5848 | |
| %74 = load %struct.Vector_t*, %struct.Vector_t** %6, align 8, !dbg !5849 | |
| %75 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %74, i32 0, i32 1, !dbg !5850 | |
| %76 = load double*, double** %75, align 8, !dbg !5850 | |
| %77 = load i32, i32* %7, align 4, !dbg !5851 | |
| %78 = zext i32 %77 to i64, !dbg !5849 | |
| %79 = getelementptr inbounds double, double* %76, i64 %78, !dbg !5849 | |
| store double %73, double* %79, align 8, !dbg !5852 | |
| br label %80, !dbg !5849 | |
| 80: ; preds = %58 | |
| %81 = load i32, i32* %7, align 4, !dbg !5853 | |
| %82 = add i32 %81, 1, !dbg !5853 | |
| store i32 %82, i32* %7, align 4, !dbg !5853 | |
| br label %54, !dbg !5854, !llvm.loop !5855 | |
| 83: ; preds = %54 | |
| %84 = load %struct.Vector_t*, %struct.Vector_t** %6, align 8, !dbg !5857 | |
| ret %struct.Vector_t* %84, !dbg !5858 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @vectorDot(%struct.Vector_t* %0, %struct.Vector_t* %1) #0 !dbg !5859 { | |
| %3 = alloca %struct.Vector_t*, align 8 | |
| %4 = alloca %struct.Vector_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca i32, align 4 | |
| %7 = alloca double, align 8 | |
| store %struct.Vector_t* %0, %struct.Vector_t** %3, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %3, metadata !5862, metadata !DIExpression()), !dbg !5863 | |
| store %struct.Vector_t* %1, %struct.Vector_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %4, metadata !5864, metadata !DIExpression()), !dbg !5865 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !5866, metadata !DIExpression()), !dbg !5867 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !5868, metadata !DIExpression()), !dbg !5869 | |
| %8 = load %struct.Vector_t*, %struct.Vector_t** %3, align 8, !dbg !5870 | |
| %9 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %8, i32 0, i32 0, !dbg !5870 | |
| %10 = load i32, i32* %9, align 8, !dbg !5870 | |
| %11 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5870 | |
| %12 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %11, i32 0, i32 0, !dbg !5870 | |
| %13 = load i32, i32* %12, align 8, !dbg !5870 | |
| %14 = icmp ult i32 %10, %13, !dbg !5870 | |
| br i1 %14, label %15, label %19, !dbg !5870 | |
| 15: ; preds = %2 | |
| %16 = load %struct.Vector_t*, %struct.Vector_t** %3, align 8, !dbg !5870 | |
| %17 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %16, i32 0, i32 0, !dbg !5870 | |
| %18 = load i32, i32* %17, align 8, !dbg !5870 | |
| br label %23, !dbg !5870 | |
| 19: ; preds = %2 | |
| %20 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5870 | |
| %21 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %20, i32 0, i32 0, !dbg !5870 | |
| %22 = load i32, i32* %21, align 8, !dbg !5870 | |
| br label %23, !dbg !5870 | |
| 23: ; preds = %19, %15 | |
| %24 = phi i32 [ %18, %15 ], [ %22, %19 ], !dbg !5870 | |
| store i32 %24, i32* %6, align 4, !dbg !5869 | |
| call void @llvm.dbg.declare(metadata double* %7, metadata !5871, metadata !DIExpression()), !dbg !5872 | |
| store double 0.000000e+00, double* %7, align 8, !dbg !5872 | |
| store i32 0, i32* %5, align 4, !dbg !5873 | |
| br label %25, !dbg !5875 | |
| 25: ; preds = %47, %23 | |
| %26 = load i32, i32* %5, align 4, !dbg !5876 | |
| %27 = load i32, i32* %6, align 4, !dbg !5878 | |
| %28 = icmp ult i32 %26, %27, !dbg !5879 | |
| br i1 %28, label %29, label %50, !dbg !5880 | |
| 29: ; preds = %25 | |
| %30 = load %struct.Vector_t*, %struct.Vector_t** %3, align 8, !dbg !5881 | |
| %31 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %30, i32 0, i32 1, !dbg !5882 | |
| %32 = load double*, double** %31, align 8, !dbg !5882 | |
| %33 = load i32, i32* %5, align 4, !dbg !5883 | |
| %34 = zext i32 %33 to i64, !dbg !5881 | |
| %35 = getelementptr inbounds double, double* %32, i64 %34, !dbg !5881 | |
| %36 = load double, double* %35, align 8, !dbg !5881 | |
| %37 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5884 | |
| %38 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %37, i32 0, i32 1, !dbg !5885 | |
| %39 = load double*, double** %38, align 8, !dbg !5885 | |
| %40 = load i32, i32* %5, align 4, !dbg !5886 | |
| %41 = zext i32 %40 to i64, !dbg !5884 | |
| %42 = getelementptr inbounds double, double* %39, i64 %41, !dbg !5884 | |
| %43 = load double, double* %42, align 8, !dbg !5884 | |
| %44 = fmul double %36, %43, !dbg !5887 | |
| %45 = load double, double* %7, align 8, !dbg !5888 | |
| %46 = fadd double %45, %44, !dbg !5888 | |
| store double %46, double* %7, align 8, !dbg !5888 | |
| br label %47, !dbg !5889 | |
| 47: ; preds = %29 | |
| %48 = load i32, i32* %5, align 4, !dbg !5890 | |
| %49 = add i32 %48, 1, !dbg !5890 | |
| store i32 %49, i32* %5, align 4, !dbg !5890 | |
| br label %25, !dbg !5891, !llvm.loop !5892 | |
| 50: ; preds = %25 | |
| %51 = load double, double* %7, align 8, !dbg !5894 | |
| ret double %51, !dbg !5895 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @vectorLengthSquared(%struct.Vector_t* %0) #0 !dbg !5896 { | |
| %2 = alloca %struct.Vector_t*, align 8 | |
| store %struct.Vector_t* %0, %struct.Vector_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %2, metadata !5899, metadata !DIExpression()), !dbg !5900 | |
| %3 = load %struct.Vector_t*, %struct.Vector_t** %2, align 8, !dbg !5901 | |
| %4 = load %struct.Vector_t*, %struct.Vector_t** %2, align 8, !dbg !5902 | |
| %5 = call double @vectorDot(%struct.Vector_t* %3, %struct.Vector_t* %4), !dbg !5903 | |
| ret double %5, !dbg !5904 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @vectorLength(%struct.Vector_t* %0) #0 !dbg !5905 { | |
| %2 = alloca %struct.Vector_t*, align 8 | |
| store %struct.Vector_t* %0, %struct.Vector_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %2, metadata !5906, metadata !DIExpression()), !dbg !5907 | |
| %3 = load %struct.Vector_t*, %struct.Vector_t** %2, align 8, !dbg !5908 | |
| %4 = load %struct.Vector_t*, %struct.Vector_t** %2, align 8, !dbg !5909 | |
| %5 = call double @vectorDot(%struct.Vector_t* %3, %struct.Vector_t* %4), !dbg !5910 | |
| %6 = call double @sqrt(double %5) #7, !dbg !5911 | |
| ret double %6, !dbg !5912 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vector_t* @vectorChangeLength(%struct.Vector_t* %0, %struct.Vector_t* %1, double %2) #0 !dbg !5913 { | |
| %4 = alloca %struct.Vector_t*, align 8 | |
| %5 = alloca %struct.Vector_t*, align 8 | |
| %6 = alloca double, align 8 | |
| %7 = alloca double, align 8 | |
| store %struct.Vector_t* %0, %struct.Vector_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %4, metadata !5916, metadata !DIExpression()), !dbg !5917 | |
| store %struct.Vector_t* %1, %struct.Vector_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %5, metadata !5918, metadata !DIExpression()), !dbg !5919 | |
| store double %2, double* %6, align 8 | |
| call void @llvm.dbg.declare(metadata double* %6, metadata !5920, metadata !DIExpression()), !dbg !5921 | |
| call void @llvm.dbg.declare(metadata double* %7, metadata !5922, metadata !DIExpression()), !dbg !5923 | |
| %8 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5924 | |
| %9 = call double @vectorLength(%struct.Vector_t* %8), !dbg !5925 | |
| store double %9, double* %7, align 8, !dbg !5923 | |
| %10 = load double, double* %7, align 8, !dbg !5926 | |
| %11 = fcmp ogt double %10, 0.000000e+00, !dbg !5928 | |
| br i1 %11, label %12, label %19, !dbg !5929 | |
| 12: ; preds = %3 | |
| %13 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5930 | |
| %14 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5932 | |
| %15 = load double, double* %6, align 8, !dbg !5933 | |
| %16 = load double, double* %7, align 8, !dbg !5934 | |
| %17 = fdiv double %15, %16, !dbg !5935 | |
| %18 = call %struct.Vector_t* @vectorScale(%struct.Vector_t* %13, %struct.Vector_t* %14, double %17), !dbg !5936 | |
| br label %33, !dbg !5937 | |
| 19: ; preds = %3 | |
| %20 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5938 | |
| %21 = call %struct.Vector_t* @vectorZero(%struct.Vector_t* %20), !dbg !5940 | |
| %22 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5941 | |
| %23 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %22, i32 0, i32 0, !dbg !5943 | |
| %24 = load i32, i32* %23, align 8, !dbg !5943 | |
| %25 = icmp ugt i32 %24, 0, !dbg !5944 | |
| br i1 %25, label %26, label %32, !dbg !5945 | |
| 26: ; preds = %19 | |
| %27 = load double, double* %6, align 8, !dbg !5946 | |
| %28 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5947 | |
| %29 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %28, i32 0, i32 1, !dbg !5948 | |
| %30 = load double*, double** %29, align 8, !dbg !5948 | |
| %31 = getelementptr inbounds double, double* %30, i64 0, !dbg !5947 | |
| store double %27, double* %31, align 8, !dbg !5949 | |
| br label %32, !dbg !5947 | |
| 32: ; preds = %26, %19 | |
| br label %33 | |
| 33: ; preds = %32, %12 | |
| %34 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5950 | |
| ret %struct.Vector_t* %34, !dbg !5951 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vector_t* @vectorScale(%struct.Vector_t* %0, %struct.Vector_t* %1, double %2) #0 !dbg !5952 { | |
| %4 = alloca %struct.Vector_t*, align 8 | |
| %5 = alloca %struct.Vector_t*, align 8 | |
| %6 = alloca double, align 8 | |
| %7 = alloca i32, align 4 | |
| %8 = alloca i32, align 4 | |
| store %struct.Vector_t* %0, %struct.Vector_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %4, metadata !5953, metadata !DIExpression()), !dbg !5954 | |
| store %struct.Vector_t* %1, %struct.Vector_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %5, metadata !5955, metadata !DIExpression()), !dbg !5956 | |
| store double %2, double* %6, align 8 | |
| call void @llvm.dbg.declare(metadata double* %6, metadata !5957, metadata !DIExpression()), !dbg !5958 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !5959, metadata !DIExpression()), !dbg !5960 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !5961, metadata !DIExpression()), !dbg !5962 | |
| %9 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5963 | |
| %10 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %9, i32 0, i32 0, !dbg !5963 | |
| %11 = load i32, i32* %10, align 8, !dbg !5963 | |
| %12 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5963 | |
| %13 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %12, i32 0, i32 0, !dbg !5963 | |
| %14 = load i32, i32* %13, align 8, !dbg !5963 | |
| %15 = icmp ult i32 %11, %14, !dbg !5963 | |
| br i1 %15, label %16, label %20, !dbg !5963 | |
| 16: ; preds = %3 | |
| %17 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5963 | |
| %18 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %17, i32 0, i32 0, !dbg !5963 | |
| %19 = load i32, i32* %18, align 8, !dbg !5963 | |
| br label %24, !dbg !5963 | |
| 20: ; preds = %3 | |
| %21 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5963 | |
| %22 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %21, i32 0, i32 0, !dbg !5963 | |
| %23 = load i32, i32* %22, align 8, !dbg !5963 | |
| br label %24, !dbg !5963 | |
| 24: ; preds = %20, %16 | |
| %25 = phi i32 [ %19, %16 ], [ %23, %20 ], !dbg !5963 | |
| store i32 %25, i32* %8, align 4, !dbg !5962 | |
| store i32 0, i32* %7, align 4, !dbg !5964 | |
| br label %26, !dbg !5966 | |
| 26: ; preds = %46, %24 | |
| %27 = load i32, i32* %7, align 4, !dbg !5967 | |
| %28 = load i32, i32* %8, align 4, !dbg !5969 | |
| %29 = icmp ult i32 %27, %28, !dbg !5970 | |
| br i1 %29, label %30, label %49, !dbg !5971 | |
| 30: ; preds = %26 | |
| %31 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5972 | |
| %32 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %31, i32 0, i32 1, !dbg !5973 | |
| %33 = load double*, double** %32, align 8, !dbg !5973 | |
| %34 = load i32, i32* %7, align 4, !dbg !5974 | |
| %35 = zext i32 %34 to i64, !dbg !5972 | |
| %36 = getelementptr inbounds double, double* %33, i64 %35, !dbg !5972 | |
| %37 = load double, double* %36, align 8, !dbg !5972 | |
| %38 = load double, double* %6, align 8, !dbg !5975 | |
| %39 = fmul double %37, %38, !dbg !5976 | |
| %40 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5977 | |
| %41 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %40, i32 0, i32 1, !dbg !5978 | |
| %42 = load double*, double** %41, align 8, !dbg !5978 | |
| %43 = load i32, i32* %7, align 4, !dbg !5979 | |
| %44 = zext i32 %43 to i64, !dbg !5977 | |
| %45 = getelementptr inbounds double, double* %42, i64 %44, !dbg !5977 | |
| store double %39, double* %45, align 8, !dbg !5980 | |
| br label %46, !dbg !5977 | |
| 46: ; preds = %30 | |
| %47 = load i32, i32* %7, align 4, !dbg !5981 | |
| %48 = add i32 %47, 1, !dbg !5981 | |
| store i32 %48, i32* %7, align 4, !dbg !5981 | |
| br label %26, !dbg !5982, !llvm.loop !5983 | |
| 49: ; preds = %26 | |
| %50 = load %struct.Vector_t*, %struct.Vector_t** %5, align 8, !dbg !5985 | |
| ret %struct.Vector_t* %50, !dbg !5986 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vector_t* @vectorUnit(%struct.Vector_t* %0, %struct.Vector_t* %1) #0 !dbg !5987 { | |
| %3 = alloca %struct.Vector_t*, align 8 | |
| %4 = alloca %struct.Vector_t*, align 8 | |
| store %struct.Vector_t* %0, %struct.Vector_t** %3, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %3, metadata !5988, metadata !DIExpression()), !dbg !5989 | |
| store %struct.Vector_t* %1, %struct.Vector_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %4, metadata !5990, metadata !DIExpression()), !dbg !5991 | |
| %5 = load %struct.Vector_t*, %struct.Vector_t** %3, align 8, !dbg !5992 | |
| %6 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !5993 | |
| %7 = call %struct.Vector_t* @vectorChangeLength(%struct.Vector_t* %5, %struct.Vector_t* %6, double 1.000000e+00), !dbg !5994 | |
| ret %struct.Vector_t* %7, !dbg !5995 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vector_t* @vectorAbs(%struct.Vector_t* %0, %struct.Vector_t* %1) #0 !dbg !5996 { | |
| %3 = alloca %struct.Vector_t*, align 8 | |
| %4 = alloca %struct.Vector_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca i32, align 4 | |
| store %struct.Vector_t* %0, %struct.Vector_t** %3, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %3, metadata !5997, metadata !DIExpression()), !dbg !5998 | |
| store %struct.Vector_t* %1, %struct.Vector_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %4, metadata !5999, metadata !DIExpression()), !dbg !6000 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !6001, metadata !DIExpression()), !dbg !6002 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !6003, metadata !DIExpression()), !dbg !6004 | |
| %7 = load %struct.Vector_t*, %struct.Vector_t** %3, align 8, !dbg !6005 | |
| %8 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %7, i32 0, i32 0, !dbg !6005 | |
| %9 = load i32, i32* %8, align 8, !dbg !6005 | |
| %10 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !6005 | |
| %11 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %10, i32 0, i32 0, !dbg !6005 | |
| %12 = load i32, i32* %11, align 8, !dbg !6005 | |
| %13 = icmp ult i32 %9, %12, !dbg !6005 | |
| br i1 %13, label %14, label %18, !dbg !6005 | |
| 14: ; preds = %2 | |
| %15 = load %struct.Vector_t*, %struct.Vector_t** %3, align 8, !dbg !6005 | |
| %16 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %15, i32 0, i32 0, !dbg !6005 | |
| %17 = load i32, i32* %16, align 8, !dbg !6005 | |
| br label %22, !dbg !6005 | |
| 18: ; preds = %2 | |
| %19 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !6005 | |
| %20 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %19, i32 0, i32 0, !dbg !6005 | |
| %21 = load i32, i32* %20, align 8, !dbg !6005 | |
| br label %22, !dbg !6005 | |
| 22: ; preds = %18, %14 | |
| %23 = phi i32 [ %17, %14 ], [ %21, %18 ], !dbg !6005 | |
| store i32 %23, i32* %6, align 4, !dbg !6004 | |
| store i32 0, i32* %5, align 4, !dbg !6006 | |
| br label %24, !dbg !6008 | |
| 24: ; preds = %43, %22 | |
| %25 = load i32, i32* %5, align 4, !dbg !6009 | |
| %26 = load i32, i32* %6, align 4, !dbg !6011 | |
| %27 = icmp ult i32 %25, %26, !dbg !6012 | |
| br i1 %27, label %28, label %46, !dbg !6013 | |
| 28: ; preds = %24 | |
| %29 = load %struct.Vector_t*, %struct.Vector_t** %3, align 8, !dbg !6014 | |
| %30 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %29, i32 0, i32 1, !dbg !6015 | |
| %31 = load double*, double** %30, align 8, !dbg !6015 | |
| %32 = load i32, i32* %5, align 4, !dbg !6016 | |
| %33 = zext i32 %32 to i64, !dbg !6014 | |
| %34 = getelementptr inbounds double, double* %31, i64 %33, !dbg !6014 | |
| %35 = load double, double* %34, align 8, !dbg !6014 | |
| %36 = call double @llvm.fabs.f64(double %35), !dbg !6017 | |
| %37 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !6018 | |
| %38 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %37, i32 0, i32 1, !dbg !6019 | |
| %39 = load double*, double** %38, align 8, !dbg !6019 | |
| %40 = load i32, i32* %5, align 4, !dbg !6020 | |
| %41 = zext i32 %40 to i64, !dbg !6018 | |
| %42 = getelementptr inbounds double, double* %39, i64 %41, !dbg !6018 | |
| store double %36, double* %42, align 8, !dbg !6021 | |
| br label %43, !dbg !6018 | |
| 43: ; preds = %28 | |
| %44 = load i32, i32* %5, align 4, !dbg !6022 | |
| %45 = add i32 %44, 1, !dbg !6022 | |
| store i32 %45, i32* %5, align 4, !dbg !6022 | |
| br label %24, !dbg !6023, !llvm.loop !6024 | |
| 46: ; preds = %24 | |
| %47 = load %struct.Vector_t*, %struct.Vector_t** %4, align 8, !dbg !6026 | |
| ret %struct.Vector_t* %47, !dbg !6027 | |
| } | |
| ; Function Attrs: nounwind readnone speculatable willreturn | |
| declare double @llvm.fabs.f64(double) #2 | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @vectorMax(%struct.Vector_t* %0) #0 !dbg !6028 { | |
| %2 = alloca %struct.Vector_t*, align 8 | |
| %3 = alloca i32, align 4 | |
| %4 = alloca double, align 8 | |
| store %struct.Vector_t* %0, %struct.Vector_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %2, metadata !6029, metadata !DIExpression()), !dbg !6030 | |
| call void @llvm.dbg.declare(metadata i32* %3, metadata !6031, metadata !DIExpression()), !dbg !6032 | |
| call void @llvm.dbg.declare(metadata double* %4, metadata !6033, metadata !DIExpression()), !dbg !6034 | |
| %5 = load %struct.Vector_t*, %struct.Vector_t** %2, align 8, !dbg !6035 | |
| %6 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %5, i32 0, i32 0, !dbg !6036 | |
| %7 = load i32, i32* %6, align 8, !dbg !6036 | |
| %8 = icmp ugt i32 %7, 0, !dbg !6037 | |
| br i1 %8, label %9, label %15, !dbg !6038 | |
| 9: ; preds = %1 | |
| %10 = load %struct.Vector_t*, %struct.Vector_t** %2, align 8, !dbg !6039 | |
| %11 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %10, i32 0, i32 1, !dbg !6040 | |
| %12 = load double*, double** %11, align 8, !dbg !6040 | |
| %13 = getelementptr inbounds double, double* %12, i64 0, !dbg !6039 | |
| %14 = load double, double* %13, align 8, !dbg !6039 | |
| br label %16, !dbg !6038 | |
| 15: ; preds = %1 | |
| br label %16, !dbg !6038 | |
| 16: ; preds = %15, %9 | |
| %17 = phi double [ %14, %9 ], [ 0.000000e+00, %15 ], !dbg !6038 | |
| store double %17, double* %4, align 8, !dbg !6034 | |
| store i32 1, i32* %3, align 4, !dbg !6041 | |
| br label %18, !dbg !6043 | |
| 18: ; preds = %43, %16 | |
| %19 = load i32, i32* %3, align 4, !dbg !6044 | |
| %20 = load %struct.Vector_t*, %struct.Vector_t** %2, align 8, !dbg !6046 | |
| %21 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %20, i32 0, i32 0, !dbg !6047 | |
| %22 = load i32, i32* %21, align 8, !dbg !6047 | |
| %23 = icmp ult i32 %19, %22, !dbg !6048 | |
| br i1 %23, label %24, label %46, !dbg !6049 | |
| 24: ; preds = %18 | |
| %25 = load double, double* %4, align 8, !dbg !6050 | |
| %26 = load %struct.Vector_t*, %struct.Vector_t** %2, align 8, !dbg !6053 | |
| %27 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %26, i32 0, i32 1, !dbg !6054 | |
| %28 = load double*, double** %27, align 8, !dbg !6054 | |
| %29 = load i32, i32* %3, align 4, !dbg !6055 | |
| %30 = zext i32 %29 to i64, !dbg !6053 | |
| %31 = getelementptr inbounds double, double* %28, i64 %30, !dbg !6053 | |
| %32 = load double, double* %31, align 8, !dbg !6053 | |
| %33 = fcmp olt double %25, %32, !dbg !6056 | |
| br i1 %33, label %34, label %42, !dbg !6057 | |
| 34: ; preds = %24 | |
| %35 = load %struct.Vector_t*, %struct.Vector_t** %2, align 8, !dbg !6058 | |
| %36 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %35, i32 0, i32 1, !dbg !6059 | |
| %37 = load double*, double** %36, align 8, !dbg !6059 | |
| %38 = load i32, i32* %3, align 4, !dbg !6060 | |
| %39 = zext i32 %38 to i64, !dbg !6058 | |
| %40 = getelementptr inbounds double, double* %37, i64 %39, !dbg !6058 | |
| %41 = load double, double* %40, align 8, !dbg !6058 | |
| store double %41, double* %4, align 8, !dbg !6061 | |
| br label %42, !dbg !6062 | |
| 42: ; preds = %34, %24 | |
| br label %43, !dbg !6063 | |
| 43: ; preds = %42 | |
| %44 = load i32, i32* %3, align 4, !dbg !6064 | |
| %45 = add i32 %44, 1, !dbg !6064 | |
| store i32 %45, i32* %3, align 4, !dbg !6064 | |
| br label %18, !dbg !6065, !llvm.loop !6066 | |
| 46: ; preds = %18 | |
| %47 = load double, double* %4, align 8, !dbg !6068 | |
| ret double %47, !dbg !6069 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @vectorMin(%struct.Vector_t* %0) #0 !dbg !6070 { | |
| %2 = alloca %struct.Vector_t*, align 8 | |
| %3 = alloca i32, align 4 | |
| %4 = alloca double, align 8 | |
| store %struct.Vector_t* %0, %struct.Vector_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %2, metadata !6071, metadata !DIExpression()), !dbg !6072 | |
| call void @llvm.dbg.declare(metadata i32* %3, metadata !6073, metadata !DIExpression()), !dbg !6074 | |
| call void @llvm.dbg.declare(metadata double* %4, metadata !6075, metadata !DIExpression()), !dbg !6076 | |
| %5 = load %struct.Vector_t*, %struct.Vector_t** %2, align 8, !dbg !6077 | |
| %6 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %5, i32 0, i32 0, !dbg !6078 | |
| %7 = load i32, i32* %6, align 8, !dbg !6078 | |
| %8 = icmp ugt i32 %7, 0, !dbg !6079 | |
| br i1 %8, label %9, label %15, !dbg !6080 | |
| 9: ; preds = %1 | |
| %10 = load %struct.Vector_t*, %struct.Vector_t** %2, align 8, !dbg !6081 | |
| %11 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %10, i32 0, i32 1, !dbg !6082 | |
| %12 = load double*, double** %11, align 8, !dbg !6082 | |
| %13 = getelementptr inbounds double, double* %12, i64 0, !dbg !6081 | |
| %14 = load double, double* %13, align 8, !dbg !6081 | |
| br label %16, !dbg !6080 | |
| 15: ; preds = %1 | |
| br label %16, !dbg !6080 | |
| 16: ; preds = %15, %9 | |
| %17 = phi double [ %14, %9 ], [ 0.000000e+00, %15 ], !dbg !6080 | |
| store double %17, double* %4, align 8, !dbg !6076 | |
| store i32 1, i32* %3, align 4, !dbg !6083 | |
| br label %18, !dbg !6085 | |
| 18: ; preds = %43, %16 | |
| %19 = load i32, i32* %3, align 4, !dbg !6086 | |
| %20 = load %struct.Vector_t*, %struct.Vector_t** %2, align 8, !dbg !6088 | |
| %21 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %20, i32 0, i32 0, !dbg !6089 | |
| %22 = load i32, i32* %21, align 8, !dbg !6089 | |
| %23 = icmp ult i32 %19, %22, !dbg !6090 | |
| br i1 %23, label %24, label %46, !dbg !6091 | |
| 24: ; preds = %18 | |
| %25 = load double, double* %4, align 8, !dbg !6092 | |
| %26 = load %struct.Vector_t*, %struct.Vector_t** %2, align 8, !dbg !6095 | |
| %27 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %26, i32 0, i32 1, !dbg !6096 | |
| %28 = load double*, double** %27, align 8, !dbg !6096 | |
| %29 = load i32, i32* %3, align 4, !dbg !6097 | |
| %30 = zext i32 %29 to i64, !dbg !6095 | |
| %31 = getelementptr inbounds double, double* %28, i64 %30, !dbg !6095 | |
| %32 = load double, double* %31, align 8, !dbg !6095 | |
| %33 = fcmp ogt double %25, %32, !dbg !6098 | |
| br i1 %33, label %34, label %42, !dbg !6099 | |
| 34: ; preds = %24 | |
| %35 = load %struct.Vector_t*, %struct.Vector_t** %2, align 8, !dbg !6100 | |
| %36 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %35, i32 0, i32 1, !dbg !6101 | |
| %37 = load double*, double** %36, align 8, !dbg !6101 | |
| %38 = load i32, i32* %3, align 4, !dbg !6102 | |
| %39 = zext i32 %38 to i64, !dbg !6100 | |
| %40 = getelementptr inbounds double, double* %37, i64 %39, !dbg !6100 | |
| %41 = load double, double* %40, align 8, !dbg !6100 | |
| store double %41, double* %4, align 8, !dbg !6103 | |
| br label %42, !dbg !6104 | |
| 42: ; preds = %34, %24 | |
| br label %43, !dbg !6105 | |
| 43: ; preds = %42 | |
| %44 = load i32, i32* %3, align 4, !dbg !6106 | |
| %45 = add i32 %44, 1, !dbg !6106 | |
| store i32 %45, i32* %3, align 4, !dbg !6106 | |
| br label %18, !dbg !6107, !llvm.loop !6108 | |
| 46: ; preds = %18 | |
| %47 = load double, double* %4, align 8, !dbg !6110 | |
| ret double %47, !dbg !6111 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @matrixGet(%struct.Matrix_t* %0, i32 %1, i32 %2) #0 !dbg !6112 { | |
| %4 = alloca %struct.Matrix_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca i32, align 4 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %4, metadata !6117, metadata !DIExpression()), !dbg !6118 | |
| store i32 %1, i32* %5, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !6119, metadata !DIExpression()), !dbg !6120 | |
| store i32 %2, i32* %6, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !6121, metadata !DIExpression()), !dbg !6122 | |
| %7 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !6123 | |
| %8 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %7, i32 0, i32 2, !dbg !6123 | |
| %9 = load double*, double** %8, align 8, !dbg !6123 | |
| %10 = load i32, i32* %5, align 4, !dbg !6123 | |
| %11 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !6123 | |
| %12 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %11, i32 0, i32 1, !dbg !6123 | |
| %13 = load i32, i32* %12, align 4, !dbg !6123 | |
| %14 = mul i32 %10, %13, !dbg !6123 | |
| %15 = load i32, i32* %6, align 4, !dbg !6123 | |
| %16 = add i32 %14, %15, !dbg !6123 | |
| %17 = zext i32 %16 to i64, !dbg !6123 | |
| %18 = getelementptr inbounds double, double* %9, i64 %17, !dbg !6123 | |
| %19 = load double, double* %18, align 8, !dbg !6123 | |
| ret double %19, !dbg !6124 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @matrixSet(%struct.Matrix_t* %0, i32 %1, i32 %2, double %3) #0 !dbg !6125 { | |
| %5 = alloca %struct.Matrix_t*, align 8 | |
| %6 = alloca i32, align 4 | |
| %7 = alloca i32, align 4 | |
| %8 = alloca double, align 8 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %5, metadata !6128, metadata !DIExpression()), !dbg !6129 | |
| store i32 %1, i32* %6, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !6130, metadata !DIExpression()), !dbg !6131 | |
| store i32 %2, i32* %7, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !6132, metadata !DIExpression()), !dbg !6133 | |
| store double %3, double* %8, align 8 | |
| call void @llvm.dbg.declare(metadata double* %8, metadata !6134, metadata !DIExpression()), !dbg !6135 | |
| %9 = load double, double* %8, align 8, !dbg !6136 | |
| %10 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6137 | |
| %11 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %10, i32 0, i32 2, !dbg !6137 | |
| %12 = load double*, double** %11, align 8, !dbg !6137 | |
| %13 = load i32, i32* %6, align 4, !dbg !6137 | |
| %14 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6137 | |
| %15 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %14, i32 0, i32 1, !dbg !6137 | |
| %16 = load i32, i32* %15, align 4, !dbg !6137 | |
| %17 = mul i32 %13, %16, !dbg !6137 | |
| %18 = load i32, i32* %7, align 4, !dbg !6137 | |
| %19 = add i32 %17, %18, !dbg !6137 | |
| %20 = zext i32 %19 to i64, !dbg !6137 | |
| %21 = getelementptr inbounds double, double* %12, i64 %20, !dbg !6137 | |
| store double %9, double* %21, align 8, !dbg !6138 | |
| ret void, !dbg !6139 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @matrixAddToElement(%struct.Matrix_t* %0, i32 %1, i32 %2, double %3) #0 !dbg !6140 { | |
| %5 = alloca %struct.Matrix_t*, align 8 | |
| %6 = alloca i32, align 4 | |
| %7 = alloca i32, align 4 | |
| %8 = alloca double, align 8 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %5, metadata !6141, metadata !DIExpression()), !dbg !6142 | |
| store i32 %1, i32* %6, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !6143, metadata !DIExpression()), !dbg !6144 | |
| store i32 %2, i32* %7, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !6145, metadata !DIExpression()), !dbg !6146 | |
| store double %3, double* %8, align 8 | |
| call void @llvm.dbg.declare(metadata double* %8, metadata !6147, metadata !DIExpression()), !dbg !6148 | |
| %9 = load double, double* %8, align 8, !dbg !6149 | |
| %10 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6150 | |
| %11 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %10, i32 0, i32 2, !dbg !6150 | |
| %12 = load double*, double** %11, align 8, !dbg !6150 | |
| %13 = load i32, i32* %6, align 4, !dbg !6150 | |
| %14 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6150 | |
| %15 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %14, i32 0, i32 1, !dbg !6150 | |
| %16 = load i32, i32* %15, align 4, !dbg !6150 | |
| %17 = mul i32 %13, %16, !dbg !6150 | |
| %18 = load i32, i32* %7, align 4, !dbg !6150 | |
| %19 = add i32 %17, %18, !dbg !6150 | |
| %20 = zext i32 %19 to i64, !dbg !6150 | |
| %21 = getelementptr inbounds double, double* %12, i64 %20, !dbg !6150 | |
| %22 = load double, double* %21, align 8, !dbg !6151 | |
| %23 = fadd double %22, %9, !dbg !6151 | |
| store double %23, double* %21, align 8, !dbg !6151 | |
| ret void, !dbg !6152 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Matrix_t* @matrixAllocate(i32 %0, i32 %1) #0 !dbg !6153 { | |
| %3 = alloca i32, align 4 | |
| %4 = alloca i32, align 4 | |
| %5 = alloca %struct.Matrix_t*, align 8 | |
| %6 = alloca i8*, align 8 | |
| store i32 %0, i32* %3, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %3, metadata !6156, metadata !DIExpression()), !dbg !6157 | |
| store i32 %1, i32* %4, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %4, metadata !6158, metadata !DIExpression()), !dbg !6159 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %5, metadata !6160, metadata !DIExpression()), !dbg !6161 | |
| %7 = load i32, i32* %3, align 4, !dbg !6162 | |
| %8 = zext i32 %7 to i64, !dbg !6162 | |
| %9 = mul i64 8, %8, !dbg !6163 | |
| %10 = load i32, i32* %4, align 4, !dbg !6164 | |
| %11 = zext i32 %10 to i64, !dbg !6164 | |
| %12 = mul i64 %9, %11, !dbg !6165 | |
| %13 = add i64 16, %12, !dbg !6166 | |
| %14 = call noalias i8* @malloc(i64 %13) #7, !dbg !6167 | |
| %15 = bitcast i8* %14 to %struct.Matrix_t*, !dbg !6168 | |
| store %struct.Matrix_t* %15, %struct.Matrix_t** %5, align 8, !dbg !6161 | |
| %16 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6169 | |
| %17 = icmp ne %struct.Matrix_t* %16, null, !dbg !6169 | |
| br i1 %17, label %18, label %34, !dbg !6171 | |
| 18: ; preds = %2 | |
| call void @llvm.dbg.declare(metadata i8** %6, metadata !6172, metadata !DIExpression()), !dbg !6174 | |
| %19 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6175 | |
| %20 = bitcast %struct.Matrix_t* %19 to i8*, !dbg !6176 | |
| store i8* %20, i8** %6, align 8, !dbg !6174 | |
| %21 = load i8*, i8** %6, align 8, !dbg !6177 | |
| %22 = getelementptr inbounds i8, i8* %21, i64 16, !dbg !6177 | |
| store i8* %22, i8** %6, align 8, !dbg !6177 | |
| %23 = load i8*, i8** %6, align 8, !dbg !6178 | |
| %24 = bitcast i8* %23 to double*, !dbg !6179 | |
| %25 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6180 | |
| %26 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %25, i32 0, i32 2, !dbg !6181 | |
| store double* %24, double** %26, align 8, !dbg !6182 | |
| %27 = load i32, i32* %4, align 4, !dbg !6183 | |
| %28 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6184 | |
| %29 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %28, i32 0, i32 1, !dbg !6185 | |
| store i32 %27, i32* %29, align 4, !dbg !6186 | |
| %30 = load i32, i32* %3, align 4, !dbg !6187 | |
| %31 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6188 | |
| %32 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %31, i32 0, i32 0, !dbg !6189 | |
| store i32 %30, i32* %32, align 8, !dbg !6190 | |
| %33 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6191 | |
| call void @matrixZero(%struct.Matrix_t* %33), !dbg !6192 | |
| br label %34, !dbg !6193 | |
| 34: ; preds = %18, %2 | |
| %35 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6194 | |
| ret %struct.Matrix_t* %35, !dbg !6195 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @matrixZero(%struct.Matrix_t* %0) #0 !dbg !6196 { | |
| %2 = alloca %struct.Matrix_t*, align 8 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %2, metadata !6199, metadata !DIExpression()), !dbg !6200 | |
| %3 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !6201 | |
| %4 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %3, i32 0, i32 2, !dbg !6202 | |
| %5 = load double*, double** %4, align 8, !dbg !6202 | |
| %6 = bitcast double* %5 to i8*, !dbg !6203 | |
| %7 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !6204 | |
| %8 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %7, i32 0, i32 1, !dbg !6205 | |
| %9 = load i32, i32* %8, align 4, !dbg !6205 | |
| %10 = zext i32 %9 to i64, !dbg !6204 | |
| %11 = mul i64 8, %10, !dbg !6206 | |
| %12 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !6207 | |
| %13 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %12, i32 0, i32 0, !dbg !6208 | |
| %14 = load i32, i32* %13, align 8, !dbg !6208 | |
| %15 = zext i32 %14 to i64, !dbg !6207 | |
| %16 = mul i64 %11, %15, !dbg !6209 | |
| call void @llvm.memset.p0i8.i64(i8* align 8 %6, i8 0, i64 %16, i1 false), !dbg !6203 | |
| ret void, !dbg !6210 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Matrix_t* @matrixChangeAllocateSize(%struct.Matrix_t* %0, i32 %1, i32 %2, double %3) #0 !dbg !6211 { | |
| %5 = alloca %struct.Matrix_t*, align 8 | |
| %6 = alloca i32, align 4 | |
| %7 = alloca i32, align 4 | |
| %8 = alloca double, align 8 | |
| %9 = alloca %struct.Matrix_t*, align 8 | |
| %10 = alloca i8*, align 8 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %5, metadata !6214, metadata !DIExpression()), !dbg !6215 | |
| store i32 %1, i32* %6, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !6216, metadata !DIExpression()), !dbg !6217 | |
| store i32 %2, i32* %7, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !6218, metadata !DIExpression()), !dbg !6219 | |
| store double %3, double* %8, align 8 | |
| call void @llvm.dbg.declare(metadata double* %8, metadata !6220, metadata !DIExpression()), !dbg !6221 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %9, metadata !6222, metadata !DIExpression()), !dbg !6223 | |
| %11 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6224 | |
| %12 = bitcast %struct.Matrix_t* %11 to i8*, !dbg !6224 | |
| %13 = load i32, i32* %6, align 4, !dbg !6225 | |
| %14 = zext i32 %13 to i64, !dbg !6225 | |
| %15 = mul i64 8, %14, !dbg !6226 | |
| %16 = load i32, i32* %7, align 4, !dbg !6227 | |
| %17 = zext i32 %16 to i64, !dbg !6227 | |
| %18 = mul i64 %15, %17, !dbg !6228 | |
| %19 = add i64 16, %18, !dbg !6229 | |
| %20 = call i8* @realloc(i8* %12, i64 %19) #7, !dbg !6230 | |
| %21 = bitcast i8* %20 to %struct.Matrix_t*, !dbg !6231 | |
| store %struct.Matrix_t* %21, %struct.Matrix_t** %9, align 8, !dbg !6223 | |
| %22 = load %struct.Matrix_t*, %struct.Matrix_t** %9, align 8, !dbg !6232 | |
| %23 = icmp ne %struct.Matrix_t* %22, null, !dbg !6232 | |
| br i1 %23, label %24, label %37, !dbg !6234 | |
| 24: ; preds = %4 | |
| call void @llvm.dbg.declare(metadata i8** %10, metadata !6235, metadata !DIExpression()), !dbg !6237 | |
| %25 = load %struct.Matrix_t*, %struct.Matrix_t** %9, align 8, !dbg !6238 | |
| %26 = bitcast %struct.Matrix_t* %25 to i8*, !dbg !6239 | |
| store i8* %26, i8** %10, align 8, !dbg !6237 | |
| %27 = load i8*, i8** %10, align 8, !dbg !6240 | |
| %28 = getelementptr inbounds i8, i8* %27, i64 16, !dbg !6240 | |
| store i8* %28, i8** %10, align 8, !dbg !6240 | |
| %29 = load i8*, i8** %10, align 8, !dbg !6241 | |
| %30 = bitcast i8* %29 to double*, !dbg !6242 | |
| %31 = load %struct.Matrix_t*, %struct.Matrix_t** %9, align 8, !dbg !6243 | |
| %32 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %31, i32 0, i32 2, !dbg !6244 | |
| store double* %30, double** %32, align 8, !dbg !6245 | |
| %33 = load %struct.Matrix_t*, %struct.Matrix_t** %9, align 8, !dbg !6246 | |
| %34 = load i32, i32* %6, align 4, !dbg !6247 | |
| %35 = load i32, i32* %7, align 4, !dbg !6248 | |
| %36 = load double, double* %8, align 8, !dbg !6249 | |
| call void @matrixChangeSize(%struct.Matrix_t* %33, i32 %34, i32 %35, double %36), !dbg !6250 | |
| br label %37, !dbg !6251 | |
| 37: ; preds = %24, %4 | |
| %38 = load %struct.Matrix_t*, %struct.Matrix_t** %9, align 8, !dbg !6252 | |
| ret %struct.Matrix_t* %38, !dbg !6253 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @matrixChangeSize(%struct.Matrix_t* %0, i32 %1, i32 %2, double %3) #0 !dbg !6254 { | |
| %5 = alloca %struct.Matrix_t*, align 8 | |
| %6 = alloca i32, align 4 | |
| %7 = alloca i32, align 4 | |
| %8 = alloca double, align 8 | |
| %9 = alloca %struct.Matrix_t, align 8 | |
| %10 = alloca i32, align 4 | |
| %11 = alloca i32, align 4 | |
| %12 = alloca i32, align 4 | |
| %13 = alloca i32, align 4 | |
| %14 = alloca i32, align 4 | |
| %15 = alloca i32, align 4 | |
| %16 = alloca i32, align 4 | |
| %17 = alloca i32, align 4 | |
| %18 = alloca i32, align 4 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %5, metadata !6255, metadata !DIExpression()), !dbg !6256 | |
| store i32 %1, i32* %6, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !6257, metadata !DIExpression()), !dbg !6258 | |
| store i32 %2, i32* %7, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !6259, metadata !DIExpression()), !dbg !6260 | |
| store double %3, double* %8, align 8 | |
| call void @llvm.dbg.declare(metadata double* %8, metadata !6261, metadata !DIExpression()), !dbg !6262 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t* %9, metadata !6263, metadata !DIExpression()), !dbg !6264 | |
| %19 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6265 | |
| %20 = bitcast %struct.Matrix_t* %9 to i8*, !dbg !6266 | |
| %21 = bitcast %struct.Matrix_t* %19 to i8*, !dbg !6266 | |
| call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %20, i8* align 8 %21, i64 16, i1 false), !dbg !6266 | |
| %22 = load i32, i32* %7, align 4, !dbg !6267 | |
| %23 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 1, !dbg !6268 | |
| store i32 %22, i32* %23, align 4, !dbg !6269 | |
| %24 = load i32, i32* %6, align 4, !dbg !6270 | |
| %25 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 0, !dbg !6271 | |
| store i32 %24, i32* %25, align 8, !dbg !6272 | |
| %26 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 1, !dbg !6273 | |
| %27 = load i32, i32* %26, align 4, !dbg !6273 | |
| %28 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6275 | |
| %29 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %28, i32 0, i32 1, !dbg !6276 | |
| %30 = load i32, i32* %29, align 4, !dbg !6276 | |
| %31 = icmp ugt i32 %27, %30, !dbg !6277 | |
| br i1 %31, label %32, label %135, !dbg !6278 | |
| 32: ; preds = %4 | |
| call void @llvm.dbg.declare(metadata i32* %10, metadata !6279, metadata !DIExpression()), !dbg !6281 | |
| %33 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6282 | |
| %34 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %33, i32 0, i32 0, !dbg !6283 | |
| %35 = load i32, i32* %34, align 8, !dbg !6283 | |
| %36 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 0, !dbg !6284 | |
| %37 = load i32, i32* %36, align 8, !dbg !6284 | |
| %38 = icmp ult i32 %35, %37, !dbg !6285 | |
| br i1 %38, label %39, label %43, !dbg !6286 | |
| 39: ; preds = %32 | |
| %40 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6287 | |
| %41 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %40, i32 0, i32 0, !dbg !6288 | |
| %42 = load i32, i32* %41, align 8, !dbg !6288 | |
| br label %46, !dbg !6286 | |
| 43: ; preds = %32 | |
| %44 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 0, !dbg !6289 | |
| %45 = load i32, i32* %44, align 8, !dbg !6289 | |
| br label %46, !dbg !6286 | |
| 46: ; preds = %43, %39 | |
| %47 = phi i32 [ %42, %39 ], [ %45, %43 ], !dbg !6286 | |
| store i32 %47, i32* %10, align 4, !dbg !6281 | |
| call void @llvm.dbg.declare(metadata i32* %11, metadata !6290, metadata !DIExpression()), !dbg !6291 | |
| call void @llvm.dbg.declare(metadata i32* %12, metadata !6292, metadata !DIExpression()), !dbg !6293 | |
| %48 = load i32, i32* %10, align 4, !dbg !6294 | |
| %49 = sub i32 %48, 1, !dbg !6296 | |
| store i32 %49, i32* %11, align 4, !dbg !6297 | |
| br label %50, !dbg !6298 | |
| 50: ; preds = %107, %46 | |
| %51 = load i32, i32* %11, align 4, !dbg !6299 | |
| %52 = icmp sgt i32 %51, 0, !dbg !6301 | |
| br i1 %52, label %53, label %110, !dbg !6302 | |
| 53: ; preds = %50 | |
| %54 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 1, !dbg !6303 | |
| %55 = load i32, i32* %54, align 4, !dbg !6303 | |
| %56 = sub i32 %55, 1, !dbg !6306 | |
| store i32 %56, i32* %12, align 4, !dbg !6307 | |
| br label %57, !dbg !6308 | |
| 57: ; preds = %103, %53 | |
| %58 = load i32, i32* %12, align 4, !dbg !6309 | |
| %59 = icmp sge i32 %58, 0, !dbg !6311 | |
| br i1 %59, label %60, label %106, !dbg !6312 | |
| 60: ; preds = %57 | |
| %61 = load i32, i32* %12, align 4, !dbg !6313 | |
| %62 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6316 | |
| %63 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %62, i32 0, i32 1, !dbg !6317 | |
| %64 = load i32, i32* %63, align 4, !dbg !6317 | |
| %65 = icmp sge i32 %61, %64, !dbg !6318 | |
| br i1 %65, label %66, label %78, !dbg !6319 | |
| 66: ; preds = %60 | |
| %67 = load double, double* %8, align 8, !dbg !6320 | |
| %68 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 2, !dbg !6320 | |
| %69 = load double*, double** %68, align 8, !dbg !6320 | |
| %70 = load i32, i32* %11, align 4, !dbg !6320 | |
| %71 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 1, !dbg !6320 | |
| %72 = load i32, i32* %71, align 4, !dbg !6320 | |
| %73 = mul i32 %70, %72, !dbg !6320 | |
| %74 = load i32, i32* %12, align 4, !dbg !6320 | |
| %75 = add i32 %73, %74, !dbg !6320 | |
| %76 = zext i32 %75 to i64, !dbg !6320 | |
| %77 = getelementptr inbounds double, double* %69, i64 %76, !dbg !6320 | |
| store double %67, double* %77, align 8, !dbg !6320 | |
| br label %102, !dbg !6320 | |
| 78: ; preds = %60 | |
| %79 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6321 | |
| %80 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %79, i32 0, i32 2, !dbg !6321 | |
| %81 = load double*, double** %80, align 8, !dbg !6321 | |
| %82 = load i32, i32* %11, align 4, !dbg !6321 | |
| %83 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6321 | |
| %84 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %83, i32 0, i32 1, !dbg !6321 | |
| %85 = load i32, i32* %84, align 4, !dbg !6321 | |
| %86 = mul i32 %82, %85, !dbg !6321 | |
| %87 = load i32, i32* %12, align 4, !dbg !6321 | |
| %88 = add i32 %86, %87, !dbg !6321 | |
| %89 = zext i32 %88 to i64, !dbg !6321 | |
| %90 = getelementptr inbounds double, double* %81, i64 %89, !dbg !6321 | |
| %91 = load double, double* %90, align 8, !dbg !6321 | |
| %92 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 2, !dbg !6321 | |
| %93 = load double*, double** %92, align 8, !dbg !6321 | |
| %94 = load i32, i32* %11, align 4, !dbg !6321 | |
| %95 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 1, !dbg !6321 | |
| %96 = load i32, i32* %95, align 4, !dbg !6321 | |
| %97 = mul i32 %94, %96, !dbg !6321 | |
| %98 = load i32, i32* %12, align 4, !dbg !6321 | |
| %99 = add i32 %97, %98, !dbg !6321 | |
| %100 = zext i32 %99 to i64, !dbg !6321 | |
| %101 = getelementptr inbounds double, double* %93, i64 %100, !dbg !6321 | |
| store double %91, double* %101, align 8, !dbg !6321 | |
| br label %102 | |
| 102: ; preds = %78, %66 | |
| br label %103, !dbg !6322 | |
| 103: ; preds = %102 | |
| %104 = load i32, i32* %12, align 4, !dbg !6323 | |
| %105 = add nsw i32 %104, -1, !dbg !6323 | |
| store i32 %105, i32* %12, align 4, !dbg !6323 | |
| br label %57, !dbg !6324, !llvm.loop !6325 | |
| 106: ; preds = %57 | |
| br label %107, !dbg !6327 | |
| 107: ; preds = %106 | |
| %108 = load i32, i32* %11, align 4, !dbg !6328 | |
| %109 = add nsw i32 %108, -1, !dbg !6328 | |
| store i32 %109, i32* %11, align 4, !dbg !6328 | |
| br label %50, !dbg !6329, !llvm.loop !6330 | |
| 110: ; preds = %50 | |
| %111 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 1, !dbg !6332 | |
| %112 = load i32, i32* %111, align 4, !dbg !6332 | |
| %113 = sub i32 %112, 1, !dbg !6334 | |
| store i32 %113, i32* %12, align 4, !dbg !6335 | |
| br label %114, !dbg !6336 | |
| 114: ; preds = %131, %110 | |
| %115 = load i32, i32* %12, align 4, !dbg !6337 | |
| %116 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6339 | |
| %117 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %116, i32 0, i32 1, !dbg !6340 | |
| %118 = load i32, i32* %117, align 4, !dbg !6340 | |
| %119 = icmp sge i32 %115, %118, !dbg !6341 | |
| br i1 %119, label %120, label %134, !dbg !6342 | |
| 120: ; preds = %114 | |
| %121 = load double, double* %8, align 8, !dbg !6343 | |
| %122 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 2, !dbg !6343 | |
| %123 = load double*, double** %122, align 8, !dbg !6343 | |
| %124 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 1, !dbg !6343 | |
| %125 = load i32, i32* %124, align 4, !dbg !6343 | |
| %126 = mul i32 0, %125, !dbg !6343 | |
| %127 = load i32, i32* %12, align 4, !dbg !6343 | |
| %128 = add i32 %126, %127, !dbg !6343 | |
| %129 = zext i32 %128 to i64, !dbg !6343 | |
| %130 = getelementptr inbounds double, double* %123, i64 %129, !dbg !6343 | |
| store double %121, double* %130, align 8, !dbg !6343 | |
| br label %131, !dbg !6343 | |
| 131: ; preds = %120 | |
| %132 = load i32, i32* %12, align 4, !dbg !6344 | |
| %133 = add nsw i32 %132, -1, !dbg !6344 | |
| store i32 %133, i32* %12, align 4, !dbg !6344 | |
| br label %114, !dbg !6345, !llvm.loop !6346 | |
| 134: ; preds = %114 | |
| br label %201, !dbg !6348 | |
| 135: ; preds = %4 | |
| %136 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 1, !dbg !6349 | |
| %137 = load i32, i32* %136, align 4, !dbg !6349 | |
| %138 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6351 | |
| %139 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %138, i32 0, i32 1, !dbg !6352 | |
| %140 = load i32, i32* %139, align 4, !dbg !6352 | |
| %141 = icmp ult i32 %137, %140, !dbg !6353 | |
| br i1 %141, label %142, label %200, !dbg !6354 | |
| 142: ; preds = %135 | |
| call void @llvm.dbg.declare(metadata i32* %13, metadata !6355, metadata !DIExpression()), !dbg !6357 | |
| %143 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6358 | |
| %144 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %143, i32 0, i32 0, !dbg !6359 | |
| %145 = load i32, i32* %144, align 8, !dbg !6359 | |
| %146 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 0, !dbg !6360 | |
| %147 = load i32, i32* %146, align 8, !dbg !6360 | |
| %148 = icmp ult i32 %145, %147, !dbg !6361 | |
| br i1 %148, label %149, label %153, !dbg !6362 | |
| 149: ; preds = %142 | |
| %150 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6363 | |
| %151 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %150, i32 0, i32 0, !dbg !6364 | |
| %152 = load i32, i32* %151, align 8, !dbg !6364 | |
| br label %156, !dbg !6362 | |
| 153: ; preds = %142 | |
| %154 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 0, !dbg !6365 | |
| %155 = load i32, i32* %154, align 8, !dbg !6365 | |
| br label %156, !dbg !6362 | |
| 156: ; preds = %153, %149 | |
| %157 = phi i32 [ %152, %149 ], [ %155, %153 ], !dbg !6362 | |
| store i32 %157, i32* %13, align 4, !dbg !6357 | |
| call void @llvm.dbg.declare(metadata i32* %14, metadata !6366, metadata !DIExpression()), !dbg !6367 | |
| call void @llvm.dbg.declare(metadata i32* %15, metadata !6368, metadata !DIExpression()), !dbg !6369 | |
| store i32 1, i32* %14, align 4, !dbg !6370 | |
| br label %158, !dbg !6372 | |
| 158: ; preds = %196, %156 | |
| %159 = load i32, i32* %14, align 4, !dbg !6373 | |
| %160 = load i32, i32* %13, align 4, !dbg !6375 | |
| %161 = icmp ult i32 %159, %160, !dbg !6376 | |
| br i1 %161, label %162, label %199, !dbg !6377 | |
| 162: ; preds = %158 | |
| store i32 0, i32* %15, align 4, !dbg !6378 | |
| br label %163, !dbg !6381 | |
| 163: ; preds = %192, %162 | |
| %164 = load i32, i32* %15, align 4, !dbg !6382 | |
| %165 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 1, !dbg !6384 | |
| %166 = load i32, i32* %165, align 4, !dbg !6384 | |
| %167 = icmp ult i32 %164, %166, !dbg !6385 | |
| br i1 %167, label %168, label %195, !dbg !6386 | |
| 168: ; preds = %163 | |
| %169 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6387 | |
| %170 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %169, i32 0, i32 2, !dbg !6387 | |
| %171 = load double*, double** %170, align 8, !dbg !6387 | |
| %172 = load i32, i32* %14, align 4, !dbg !6387 | |
| %173 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6387 | |
| %174 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %173, i32 0, i32 1, !dbg !6387 | |
| %175 = load i32, i32* %174, align 4, !dbg !6387 | |
| %176 = mul i32 %172, %175, !dbg !6387 | |
| %177 = load i32, i32* %15, align 4, !dbg !6387 | |
| %178 = add i32 %176, %177, !dbg !6387 | |
| %179 = zext i32 %178 to i64, !dbg !6387 | |
| %180 = getelementptr inbounds double, double* %171, i64 %179, !dbg !6387 | |
| %181 = load double, double* %180, align 8, !dbg !6387 | |
| %182 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 2, !dbg !6387 | |
| %183 = load double*, double** %182, align 8, !dbg !6387 | |
| %184 = load i32, i32* %14, align 4, !dbg !6387 | |
| %185 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 1, !dbg !6387 | |
| %186 = load i32, i32* %185, align 4, !dbg !6387 | |
| %187 = mul i32 %184, %186, !dbg !6387 | |
| %188 = load i32, i32* %15, align 4, !dbg !6387 | |
| %189 = add i32 %187, %188, !dbg !6387 | |
| %190 = zext i32 %189 to i64, !dbg !6387 | |
| %191 = getelementptr inbounds double, double* %183, i64 %190, !dbg !6387 | |
| store double %181, double* %191, align 8, !dbg !6387 | |
| br label %192, !dbg !6387 | |
| 192: ; preds = %168 | |
| %193 = load i32, i32* %15, align 4, !dbg !6388 | |
| %194 = add i32 %193, 1, !dbg !6388 | |
| store i32 %194, i32* %15, align 4, !dbg !6388 | |
| br label %163, !dbg !6389, !llvm.loop !6390 | |
| 195: ; preds = %163 | |
| br label %196, !dbg !6392 | |
| 196: ; preds = %195 | |
| %197 = load i32, i32* %14, align 4, !dbg !6393 | |
| %198 = add i32 %197, 1, !dbg !6393 | |
| store i32 %198, i32* %14, align 4, !dbg !6393 | |
| br label %158, !dbg !6394, !llvm.loop !6395 | |
| 199: ; preds = %158 | |
| br label %200, !dbg !6397 | |
| 200: ; preds = %199, %135 | |
| br label %201 | |
| 201: ; preds = %200, %134 | |
| call void @llvm.dbg.declare(metadata i32* %16, metadata !6398, metadata !DIExpression()), !dbg !6399 | |
| call void @llvm.dbg.declare(metadata i32* %17, metadata !6400, metadata !DIExpression()), !dbg !6401 | |
| call void @llvm.dbg.declare(metadata i32* %18, metadata !6402, metadata !DIExpression()), !dbg !6403 | |
| %202 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 0, !dbg !6404 | |
| %203 = load i32, i32* %202, align 8, !dbg !6404 | |
| %204 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6406 | |
| %205 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %204, i32 0, i32 0, !dbg !6407 | |
| %206 = load i32, i32* %205, align 8, !dbg !6407 | |
| %207 = icmp ugt i32 %203, %206, !dbg !6408 | |
| br i1 %207, label %208, label %243, !dbg !6409 | |
| 208: ; preds = %201 | |
| %209 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6410 | |
| %210 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %209, i32 0, i32 0, !dbg !6413 | |
| %211 = load i32, i32* %210, align 8, !dbg !6413 | |
| store i32 %211, i32* %16, align 4, !dbg !6414 | |
| br label %212, !dbg !6415 | |
| 212: ; preds = %239, %208 | |
| %213 = load i32, i32* %16, align 4, !dbg !6416 | |
| %214 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 0, !dbg !6418 | |
| %215 = load i32, i32* %214, align 8, !dbg !6418 | |
| %216 = icmp ult i32 %213, %215, !dbg !6419 | |
| br i1 %216, label %217, label %242, !dbg !6420 | |
| 217: ; preds = %212 | |
| store i32 0, i32* %17, align 4, !dbg !6421 | |
| br label %218, !dbg !6423 | |
| 218: ; preds = %235, %217 | |
| %219 = load i32, i32* %17, align 4, !dbg !6424 | |
| %220 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 1, !dbg !6426 | |
| %221 = load i32, i32* %220, align 4, !dbg !6426 | |
| %222 = icmp ult i32 %219, %221, !dbg !6427 | |
| br i1 %222, label %223, label %238, !dbg !6428 | |
| 223: ; preds = %218 | |
| %224 = load double, double* %8, align 8, !dbg !6429 | |
| %225 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 2, !dbg !6429 | |
| %226 = load double*, double** %225, align 8, !dbg !6429 | |
| %227 = load i32, i32* %16, align 4, !dbg !6429 | |
| %228 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 1, !dbg !6429 | |
| %229 = load i32, i32* %228, align 4, !dbg !6429 | |
| %230 = mul i32 %227, %229, !dbg !6429 | |
| %231 = load i32, i32* %17, align 4, !dbg !6429 | |
| %232 = add i32 %230, %231, !dbg !6429 | |
| %233 = zext i32 %232 to i64, !dbg !6429 | |
| %234 = getelementptr inbounds double, double* %226, i64 %233, !dbg !6429 | |
| store double %224, double* %234, align 8, !dbg !6429 | |
| br label %235, !dbg !6429 | |
| 235: ; preds = %223 | |
| %236 = load i32, i32* %17, align 4, !dbg !6430 | |
| %237 = add i32 %236, 1, !dbg !6430 | |
| store i32 %237, i32* %17, align 4, !dbg !6430 | |
| br label %218, !dbg !6431, !llvm.loop !6432 | |
| 238: ; preds = %218 | |
| br label %239, !dbg !6433 | |
| 239: ; preds = %238 | |
| %240 = load i32, i32* %16, align 4, !dbg !6434 | |
| %241 = add i32 %240, 1, !dbg !6434 | |
| store i32 %241, i32* %16, align 4, !dbg !6434 | |
| br label %212, !dbg !6435, !llvm.loop !6436 | |
| 242: ; preds = %212 | |
| br label %243, !dbg !6438 | |
| 243: ; preds = %242, %201 | |
| %244 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 0, !dbg !6439 | |
| %245 = load i32, i32* %244, align 8, !dbg !6439 | |
| %246 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 1, !dbg !6441 | |
| %247 = load i32, i32* %246, align 4, !dbg !6441 | |
| %248 = mul i32 %245, %247, !dbg !6442 | |
| %249 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6443 | |
| %250 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %249, i32 0, i32 0, !dbg !6444 | |
| %251 = load i32, i32* %250, align 8, !dbg !6444 | |
| %252 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6445 | |
| %253 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %252, i32 0, i32 1, !dbg !6446 | |
| %254 = load i32, i32* %253, align 4, !dbg !6446 | |
| %255 = mul i32 %251, %254, !dbg !6447 | |
| %256 = icmp ult i32 %248, %255, !dbg !6448 | |
| br i1 %256, label %257, label %284, !dbg !6449 | |
| 257: ; preds = %243 | |
| %258 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 0, !dbg !6450 | |
| %259 = load i32, i32* %258, align 8, !dbg !6450 | |
| %260 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 1, !dbg !6453 | |
| %261 = load i32, i32* %260, align 4, !dbg !6453 | |
| %262 = mul i32 %259, %261, !dbg !6454 | |
| store i32 %262, i32* %18, align 4, !dbg !6455 | |
| br label %263, !dbg !6456 | |
| 263: ; preds = %280, %257 | |
| %264 = load i32, i32* %18, align 4, !dbg !6457 | |
| %265 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6459 | |
| %266 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %265, i32 0, i32 0, !dbg !6460 | |
| %267 = load i32, i32* %266, align 8, !dbg !6460 | |
| %268 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6461 | |
| %269 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %268, i32 0, i32 1, !dbg !6462 | |
| %270 = load i32, i32* %269, align 4, !dbg !6462 | |
| %271 = mul i32 %267, %270, !dbg !6463 | |
| %272 = icmp ult i32 %264, %271, !dbg !6464 | |
| br i1 %272, label %273, label %283, !dbg !6465 | |
| 273: ; preds = %263 | |
| %274 = load double, double* %8, align 8, !dbg !6466 | |
| %275 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 2, !dbg !6467 | |
| %276 = load double*, double** %275, align 8, !dbg !6467 | |
| %277 = load i32, i32* %18, align 4, !dbg !6468 | |
| %278 = zext i32 %277 to i64, !dbg !6469 | |
| %279 = getelementptr inbounds double, double* %276, i64 %278, !dbg !6469 | |
| store double %274, double* %279, align 8, !dbg !6470 | |
| br label %280, !dbg !6469 | |
| 280: ; preds = %273 | |
| %281 = load i32, i32* %18, align 4, !dbg !6471 | |
| %282 = add i32 %281, 1, !dbg !6471 | |
| store i32 %282, i32* %18, align 4, !dbg !6471 | |
| br label %263, !dbg !6472, !llvm.loop !6473 | |
| 283: ; preds = %263 | |
| br label %284, !dbg !6475 | |
| 284: ; preds = %283, %243 | |
| %285 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6476 | |
| %286 = bitcast %struct.Matrix_t* %285 to i8*, !dbg !6477 | |
| %287 = bitcast %struct.Matrix_t* %9 to i8*, !dbg !6477 | |
| call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %286, i8* align 8 %287, i64 16, i1 false), !dbg !6477 | |
| ret void, !dbg !6478 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @matrixSetIdentity(%struct.Matrix_t* %0) #0 !dbg !6479 { | |
| %2 = alloca %struct.Matrix_t*, align 8 | |
| %3 = alloca i32, align 4 | |
| %4 = alloca i32, align 4 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %2, metadata !6480, metadata !DIExpression()), !dbg !6481 | |
| call void @llvm.dbg.declare(metadata i32* %3, metadata !6482, metadata !DIExpression()), !dbg !6483 | |
| call void @llvm.dbg.declare(metadata i32* %4, metadata !6484, metadata !DIExpression()), !dbg !6485 | |
| store i32 0, i32* %3, align 4, !dbg !6486 | |
| br label %5, !dbg !6488 | |
| 5: ; preds = %53, %1 | |
| %6 = load i32, i32* %3, align 4, !dbg !6489 | |
| %7 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !6491 | |
| %8 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %7, i32 0, i32 0, !dbg !6492 | |
| %9 = load i32, i32* %8, align 8, !dbg !6492 | |
| %10 = icmp ult i32 %6, %9, !dbg !6493 | |
| br i1 %10, label %11, label %56, !dbg !6494 | |
| 11: ; preds = %5 | |
| store i32 0, i32* %4, align 4, !dbg !6495 | |
| br label %12, !dbg !6498 | |
| 12: ; preds = %49, %11 | |
| %13 = load i32, i32* %4, align 4, !dbg !6499 | |
| %14 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !6501 | |
| %15 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %14, i32 0, i32 1, !dbg !6502 | |
| %16 = load i32, i32* %15, align 4, !dbg !6502 | |
| %17 = icmp ult i32 %13, %16, !dbg !6503 | |
| br i1 %17, label %18, label %52, !dbg !6504 | |
| 18: ; preds = %12 | |
| %19 = load i32, i32* %3, align 4, !dbg !6505 | |
| %20 = load i32, i32* %4, align 4, !dbg !6508 | |
| %21 = icmp eq i32 %19, %20, !dbg !6509 | |
| br i1 %21, label %22, label %35, !dbg !6510 | |
| 22: ; preds = %18 | |
| %23 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !6511 | |
| %24 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %23, i32 0, i32 2, !dbg !6511 | |
| %25 = load double*, double** %24, align 8, !dbg !6511 | |
| %26 = load i32, i32* %3, align 4, !dbg !6511 | |
| %27 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !6511 | |
| %28 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %27, i32 0, i32 1, !dbg !6511 | |
| %29 = load i32, i32* %28, align 4, !dbg !6511 | |
| %30 = mul i32 %26, %29, !dbg !6511 | |
| %31 = load i32, i32* %4, align 4, !dbg !6511 | |
| %32 = add i32 %30, %31, !dbg !6511 | |
| %33 = zext i32 %32 to i64, !dbg !6511 | |
| %34 = getelementptr inbounds double, double* %25, i64 %33, !dbg !6511 | |
| store double 1.000000e+00, double* %34, align 8, !dbg !6511 | |
| br label %48, !dbg !6511 | |
| 35: ; preds = %18 | |
| %36 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !6512 | |
| %37 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %36, i32 0, i32 2, !dbg !6512 | |
| %38 = load double*, double** %37, align 8, !dbg !6512 | |
| %39 = load i32, i32* %3, align 4, !dbg !6512 | |
| %40 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !6512 | |
| %41 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %40, i32 0, i32 1, !dbg !6512 | |
| %42 = load i32, i32* %41, align 4, !dbg !6512 | |
| %43 = mul i32 %39, %42, !dbg !6512 | |
| %44 = load i32, i32* %4, align 4, !dbg !6512 | |
| %45 = add i32 %43, %44, !dbg !6512 | |
| %46 = zext i32 %45 to i64, !dbg !6512 | |
| %47 = getelementptr inbounds double, double* %38, i64 %46, !dbg !6512 | |
| store double 0.000000e+00, double* %47, align 8, !dbg !6512 | |
| br label %48 | |
| 48: ; preds = %35, %22 | |
| br label %49, !dbg !6513 | |
| 49: ; preds = %48 | |
| %50 = load i32, i32* %4, align 4, !dbg !6514 | |
| %51 = add i32 %50, 1, !dbg !6514 | |
| store i32 %51, i32* %4, align 4, !dbg !6514 | |
| br label %12, !dbg !6515, !llvm.loop !6516 | |
| 52: ; preds = %12 | |
| br label %53, !dbg !6518 | |
| 53: ; preds = %52 | |
| %54 = load i32, i32* %3, align 4, !dbg !6519 | |
| %55 = add i32 %54, 1, !dbg !6519 | |
| store i32 %55, i32* %3, align 4, !dbg !6519 | |
| br label %5, !dbg !6520, !llvm.loop !6521 | |
| 56: ; preds = %5 | |
| ret void, !dbg !6523 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixCopy(%struct.Matrix_t* %0, %struct.Matrix_t* %1) #0 !dbg !6524 { | |
| %3 = alloca i64, align 8 | |
| %4 = alloca %struct.Matrix_t*, align 8 | |
| %5 = alloca %struct.Matrix_t*, align 8 | |
| %6 = alloca i32, align 4 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %4, metadata !6527, metadata !DIExpression()), !dbg !6528 | |
| store %struct.Matrix_t* %1, %struct.Matrix_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %5, metadata !6529, metadata !DIExpression()), !dbg !6530 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !6531, metadata !DIExpression()), !dbg !6532 | |
| %7 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !6533 | |
| %8 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %7, i32 0, i32 1, !dbg !6535 | |
| %9 = load i32, i32* %8, align 4, !dbg !6535 | |
| %10 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6536 | |
| %11 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %10, i32 0, i32 1, !dbg !6537 | |
| %12 = load i32, i32* %11, align 4, !dbg !6537 | |
| %13 = icmp eq i32 %9, %12, !dbg !6538 | |
| br i1 %13, label %14, label %51, !dbg !6539 | |
| 14: ; preds = %2 | |
| %15 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !6540 | |
| %16 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %15, i32 0, i32 0, !dbg !6541 | |
| %17 = load i32, i32* %16, align 8, !dbg !6541 | |
| %18 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6542 | |
| %19 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %18, i32 0, i32 0, !dbg !6543 | |
| %20 = load i32, i32* %19, align 8, !dbg !6543 | |
| %21 = icmp eq i32 %17, %20, !dbg !6544 | |
| br i1 %21, label %22, label %51, !dbg !6545 | |
| 22: ; preds = %14 | |
| store i32 0, i32* %6, align 4, !dbg !6546 | |
| br label %23, !dbg !6549 | |
| 23: ; preds = %47, %22 | |
| %24 = load i32, i32* %6, align 4, !dbg !6550 | |
| %25 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !6552 | |
| %26 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %25, i32 0, i32 1, !dbg !6553 | |
| %27 = load i32, i32* %26, align 4, !dbg !6553 | |
| %28 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !6554 | |
| %29 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %28, i32 0, i32 0, !dbg !6555 | |
| %30 = load i32, i32* %29, align 8, !dbg !6555 | |
| %31 = mul i32 %27, %30, !dbg !6556 | |
| %32 = icmp ult i32 %24, %31, !dbg !6557 | |
| br i1 %32, label %33, label %50, !dbg !6558 | |
| 33: ; preds = %23 | |
| %34 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !6559 | |
| %35 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %34, i32 0, i32 2, !dbg !6560 | |
| %36 = load double*, double** %35, align 8, !dbg !6560 | |
| %37 = load i32, i32* %6, align 4, !dbg !6561 | |
| %38 = zext i32 %37 to i64, !dbg !6559 | |
| %39 = getelementptr inbounds double, double* %36, i64 %38, !dbg !6559 | |
| %40 = load double, double* %39, align 8, !dbg !6559 | |
| %41 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6562 | |
| %42 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %41, i32 0, i32 2, !dbg !6563 | |
| %43 = load double*, double** %42, align 8, !dbg !6563 | |
| %44 = load i32, i32* %6, align 4, !dbg !6564 | |
| %45 = zext i32 %44 to i64, !dbg !6562 | |
| %46 = getelementptr inbounds double, double* %43, i64 %45, !dbg !6562 | |
| store double %40, double* %46, align 8, !dbg !6565 | |
| br label %47, !dbg !6562 | |
| 47: ; preds = %33 | |
| %48 = load i32, i32* %6, align 4, !dbg !6566 | |
| %49 = add i32 %48, 1, !dbg !6566 | |
| store i32 %49, i32* %6, align 4, !dbg !6566 | |
| br label %23, !dbg !6567, !llvm.loop !6568 | |
| 50: ; preds = %23 | |
| store i64 1, i64* %3, align 8, !dbg !6570 | |
| br label %52, !dbg !6570 | |
| 51: ; preds = %14, %2 | |
| store i64 0, i64* %3, align 8, !dbg !6571 | |
| br label %52, !dbg !6571 | |
| 52: ; preds = %51, %50 | |
| %53 = load i64, i64* %3, align 8, !dbg !6572 | |
| ret i64 %53, !dbg !6572 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @matrixSetRow(%struct.Matrix_t* %0, i32 %1, double %2) #0 !dbg !6573 { | |
| %4 = alloca %struct.Matrix_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca double, align 8 | |
| %7 = alloca i32, align 4 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %4, metadata !6576, metadata !DIExpression()), !dbg !6577 | |
| store i32 %1, i32* %5, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !6578, metadata !DIExpression()), !dbg !6579 | |
| store double %2, double* %6, align 8 | |
| call void @llvm.dbg.declare(metadata double* %6, metadata !6580, metadata !DIExpression()), !dbg !6581 | |
| %8 = load i32, i32* %5, align 4, !dbg !6582 | |
| %9 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !6584 | |
| %10 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 0, !dbg !6585 | |
| %11 = load i32, i32* %10, align 8, !dbg !6585 | |
| %12 = icmp ult i32 %8, %11, !dbg !6586 | |
| br i1 %12, label %13, label %38, !dbg !6587 | |
| 13: ; preds = %3 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !6588, metadata !DIExpression()), !dbg !6590 | |
| store i32 0, i32* %7, align 4, !dbg !6591 | |
| br label %14, !dbg !6593 | |
| 14: ; preds = %34, %13 | |
| %15 = load i32, i32* %7, align 4, !dbg !6594 | |
| %16 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !6596 | |
| %17 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %16, i32 0, i32 1, !dbg !6597 | |
| %18 = load i32, i32* %17, align 4, !dbg !6597 | |
| %19 = icmp ult i32 %15, %18, !dbg !6598 | |
| br i1 %19, label %20, label %37, !dbg !6599 | |
| 20: ; preds = %14 | |
| %21 = load double, double* %6, align 8, !dbg !6600 | |
| %22 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !6600 | |
| %23 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %22, i32 0, i32 2, !dbg !6600 | |
| %24 = load double*, double** %23, align 8, !dbg !6600 | |
| %25 = load i32, i32* %5, align 4, !dbg !6600 | |
| %26 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !6600 | |
| %27 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %26, i32 0, i32 1, !dbg !6600 | |
| %28 = load i32, i32* %27, align 4, !dbg !6600 | |
| %29 = mul i32 %25, %28, !dbg !6600 | |
| %30 = load i32, i32* %7, align 4, !dbg !6600 | |
| %31 = add i32 %29, %30, !dbg !6600 | |
| %32 = zext i32 %31 to i64, !dbg !6600 | |
| %33 = getelementptr inbounds double, double* %24, i64 %32, !dbg !6600 | |
| store double %21, double* %33, align 8, !dbg !6600 | |
| br label %34, !dbg !6600 | |
| 34: ; preds = %20 | |
| %35 = load i32, i32* %7, align 4, !dbg !6601 | |
| %36 = add i32 %35, 1, !dbg !6601 | |
| store i32 %36, i32* %7, align 4, !dbg !6601 | |
| br label %14, !dbg !6602, !llvm.loop !6603 | |
| 37: ; preds = %14 | |
| br label %38, !dbg !6605 | |
| 38: ; preds = %37, %3 | |
| ret void, !dbg !6606 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @matrixSetColumn(%struct.Matrix_t* %0, i32 %1, double %2) #0 !dbg !6607 { | |
| %4 = alloca %struct.Matrix_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca double, align 8 | |
| %7 = alloca i32, align 4 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %4, metadata !6608, metadata !DIExpression()), !dbg !6609 | |
| store i32 %1, i32* %5, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !6610, metadata !DIExpression()), !dbg !6611 | |
| store double %2, double* %6, align 8 | |
| call void @llvm.dbg.declare(metadata double* %6, metadata !6612, metadata !DIExpression()), !dbg !6613 | |
| %8 = load i32, i32* %5, align 4, !dbg !6614 | |
| %9 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !6616 | |
| %10 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 1, !dbg !6617 | |
| %11 = load i32, i32* %10, align 4, !dbg !6617 | |
| %12 = icmp ult i32 %8, %11, !dbg !6618 | |
| br i1 %12, label %13, label %38, !dbg !6619 | |
| 13: ; preds = %3 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !6620, metadata !DIExpression()), !dbg !6622 | |
| store i32 0, i32* %7, align 4, !dbg !6623 | |
| br label %14, !dbg !6625 | |
| 14: ; preds = %34, %13 | |
| %15 = load i32, i32* %7, align 4, !dbg !6626 | |
| %16 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !6628 | |
| %17 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %16, i32 0, i32 0, !dbg !6629 | |
| %18 = load i32, i32* %17, align 8, !dbg !6629 | |
| %19 = icmp ult i32 %15, %18, !dbg !6630 | |
| br i1 %19, label %20, label %37, !dbg !6631 | |
| 20: ; preds = %14 | |
| %21 = load double, double* %6, align 8, !dbg !6632 | |
| %22 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !6632 | |
| %23 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %22, i32 0, i32 2, !dbg !6632 | |
| %24 = load double*, double** %23, align 8, !dbg !6632 | |
| %25 = load i32, i32* %7, align 4, !dbg !6632 | |
| %26 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !6632 | |
| %27 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %26, i32 0, i32 1, !dbg !6632 | |
| %28 = load i32, i32* %27, align 4, !dbg !6632 | |
| %29 = mul i32 %25, %28, !dbg !6632 | |
| %30 = load i32, i32* %5, align 4, !dbg !6632 | |
| %31 = add i32 %29, %30, !dbg !6632 | |
| %32 = zext i32 %31 to i64, !dbg !6632 | |
| %33 = getelementptr inbounds double, double* %24, i64 %32, !dbg !6632 | |
| store double %21, double* %33, align 8, !dbg !6632 | |
| br label %34, !dbg !6632 | |
| 34: ; preds = %20 | |
| %35 = load i32, i32* %7, align 4, !dbg !6633 | |
| %36 = add i32 %35, 1, !dbg !6633 | |
| store i32 %36, i32* %7, align 4, !dbg !6633 | |
| br label %14, !dbg !6634, !llvm.loop !6635 | |
| 37: ; preds = %14 | |
| br label %38, !dbg !6637 | |
| 38: ; preds = %37, %3 | |
| ret void, !dbg !6638 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixMultiply(%struct.Matrix_t* %0, %struct.Matrix_t* %1, %struct.Matrix_t* %2) #0 !dbg !6639 { | |
| %4 = alloca i64, align 8 | |
| %5 = alloca %struct.Matrix_t*, align 8 | |
| %6 = alloca %struct.Matrix_t*, align 8 | |
| %7 = alloca %struct.Matrix_t*, align 8 | |
| %8 = alloca i32, align 4 | |
| %9 = alloca i32, align 4 | |
| %10 = alloca i32, align 4 | |
| %11 = alloca double, align 8 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %5, metadata !6642, metadata !DIExpression()), !dbg !6643 | |
| store %struct.Matrix_t* %1, %struct.Matrix_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %6, metadata !6644, metadata !DIExpression()), !dbg !6645 | |
| store %struct.Matrix_t* %2, %struct.Matrix_t** %7, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %7, metadata !6646, metadata !DIExpression()), !dbg !6647 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !6648, metadata !DIExpression()), !dbg !6649 | |
| call void @llvm.dbg.declare(metadata i32* %9, metadata !6650, metadata !DIExpression()), !dbg !6651 | |
| call void @llvm.dbg.declare(metadata i32* %10, metadata !6652, metadata !DIExpression()), !dbg !6653 | |
| %12 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6654 | |
| %13 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %12, i32 0, i32 1, !dbg !6656 | |
| %14 = load i32, i32* %13, align 4, !dbg !6656 | |
| %15 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !6657 | |
| %16 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %15, i32 0, i32 0, !dbg !6658 | |
| %17 = load i32, i32* %16, align 8, !dbg !6658 | |
| %18 = icmp ne i32 %14, %17, !dbg !6659 | |
| br i1 %18, label %35, label %19, !dbg !6660 | |
| 19: ; preds = %3 | |
| %20 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6661 | |
| %21 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %20, i32 0, i32 0, !dbg !6662 | |
| %22 = load i32, i32* %21, align 8, !dbg !6662 | |
| %23 = load %struct.Matrix_t*, %struct.Matrix_t** %7, align 8, !dbg !6663 | |
| %24 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %23, i32 0, i32 0, !dbg !6664 | |
| %25 = load i32, i32* %24, align 8, !dbg !6664 | |
| %26 = icmp ne i32 %22, %25, !dbg !6665 | |
| br i1 %26, label %35, label %27, !dbg !6666 | |
| 27: ; preds = %19 | |
| %28 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !6667 | |
| %29 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %28, i32 0, i32 1, !dbg !6668 | |
| %30 = load i32, i32* %29, align 4, !dbg !6668 | |
| %31 = load %struct.Matrix_t*, %struct.Matrix_t** %7, align 8, !dbg !6669 | |
| %32 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %31, i32 0, i32 1, !dbg !6670 | |
| %33 = load i32, i32* %32, align 4, !dbg !6670 | |
| %34 = icmp ne i32 %30, %33, !dbg !6671 | |
| br i1 %34, label %35, label %36, !dbg !6672 | |
| 35: ; preds = %27, %19, %3 | |
| store i64 0, i64* %4, align 8, !dbg !6673 | |
| br label %112, !dbg !6673 | |
| 36: ; preds = %27 | |
| store i32 0, i32* %8, align 4, !dbg !6674 | |
| br label %37, !dbg !6676 | |
| 37: ; preds = %108, %36 | |
| %38 = load i32, i32* %8, align 4, !dbg !6677 | |
| %39 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6679 | |
| %40 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %39, i32 0, i32 0, !dbg !6680 | |
| %41 = load i32, i32* %40, align 8, !dbg !6680 | |
| %42 = icmp ult i32 %38, %41, !dbg !6681 | |
| br i1 %42, label %43, label %111, !dbg !6682 | |
| 43: ; preds = %37 | |
| store i32 0, i32* %9, align 4, !dbg !6683 | |
| br label %44, !dbg !6686 | |
| 44: ; preds = %104, %43 | |
| %45 = load i32, i32* %9, align 4, !dbg !6687 | |
| %46 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !6689 | |
| %47 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %46, i32 0, i32 1, !dbg !6690 | |
| %48 = load i32, i32* %47, align 4, !dbg !6690 | |
| %49 = icmp ult i32 %45, %48, !dbg !6691 | |
| br i1 %49, label %50, label %107, !dbg !6692 | |
| 50: ; preds = %44 | |
| call void @llvm.dbg.declare(metadata double* %11, metadata !6693, metadata !DIExpression()), !dbg !6695 | |
| store double 0.000000e+00, double* %11, align 8, !dbg !6695 | |
| store i32 0, i32* %10, align 4, !dbg !6696 | |
| br label %51, !dbg !6698 | |
| 51: ; preds = %87, %50 | |
| %52 = load i32, i32* %10, align 4, !dbg !6699 | |
| %53 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6701 | |
| %54 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %53, i32 0, i32 1, !dbg !6702 | |
| %55 = load i32, i32* %54, align 4, !dbg !6702 | |
| %56 = icmp ult i32 %52, %55, !dbg !6703 | |
| br i1 %56, label %57, label %90, !dbg !6704 | |
| 57: ; preds = %51 | |
| %58 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6705 | |
| %59 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %58, i32 0, i32 2, !dbg !6705 | |
| %60 = load double*, double** %59, align 8, !dbg !6705 | |
| %61 = load i32, i32* %8, align 4, !dbg !6705 | |
| %62 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6705 | |
| %63 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %62, i32 0, i32 1, !dbg !6705 | |
| %64 = load i32, i32* %63, align 4, !dbg !6705 | |
| %65 = mul i32 %61, %64, !dbg !6705 | |
| %66 = load i32, i32* %10, align 4, !dbg !6705 | |
| %67 = add i32 %65, %66, !dbg !6705 | |
| %68 = zext i32 %67 to i64, !dbg !6705 | |
| %69 = getelementptr inbounds double, double* %60, i64 %68, !dbg !6705 | |
| %70 = load double, double* %69, align 8, !dbg !6705 | |
| %71 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !6707 | |
| %72 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %71, i32 0, i32 2, !dbg !6707 | |
| %73 = load double*, double** %72, align 8, !dbg !6707 | |
| %74 = load i32, i32* %10, align 4, !dbg !6707 | |
| %75 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !6707 | |
| %76 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %75, i32 0, i32 1, !dbg !6707 | |
| %77 = load i32, i32* %76, align 4, !dbg !6707 | |
| %78 = mul i32 %74, %77, !dbg !6707 | |
| %79 = load i32, i32* %9, align 4, !dbg !6707 | |
| %80 = add i32 %78, %79, !dbg !6707 | |
| %81 = zext i32 %80 to i64, !dbg !6707 | |
| %82 = getelementptr inbounds double, double* %73, i64 %81, !dbg !6707 | |
| %83 = load double, double* %82, align 8, !dbg !6707 | |
| %84 = fmul double %70, %83, !dbg !6708 | |
| %85 = load double, double* %11, align 8, !dbg !6709 | |
| %86 = fadd double %85, %84, !dbg !6709 | |
| store double %86, double* %11, align 8, !dbg !6709 | |
| br label %87, !dbg !6710 | |
| 87: ; preds = %57 | |
| %88 = load i32, i32* %10, align 4, !dbg !6711 | |
| %89 = add i32 %88, 1, !dbg !6711 | |
| store i32 %89, i32* %10, align 4, !dbg !6711 | |
| br label %51, !dbg !6712, !llvm.loop !6713 | |
| 90: ; preds = %51 | |
| %91 = load double, double* %11, align 8, !dbg !6715 | |
| %92 = load %struct.Matrix_t*, %struct.Matrix_t** %7, align 8, !dbg !6715 | |
| %93 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %92, i32 0, i32 2, !dbg !6715 | |
| %94 = load double*, double** %93, align 8, !dbg !6715 | |
| %95 = load i32, i32* %8, align 4, !dbg !6715 | |
| %96 = load %struct.Matrix_t*, %struct.Matrix_t** %7, align 8, !dbg !6715 | |
| %97 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %96, i32 0, i32 1, !dbg !6715 | |
| %98 = load i32, i32* %97, align 4, !dbg !6715 | |
| %99 = mul i32 %95, %98, !dbg !6715 | |
| %100 = load i32, i32* %9, align 4, !dbg !6715 | |
| %101 = add i32 %99, %100, !dbg !6715 | |
| %102 = zext i32 %101 to i64, !dbg !6715 | |
| %103 = getelementptr inbounds double, double* %94, i64 %102, !dbg !6715 | |
| store double %91, double* %103, align 8, !dbg !6715 | |
| br label %104, !dbg !6716 | |
| 104: ; preds = %90 | |
| %105 = load i32, i32* %9, align 4, !dbg !6717 | |
| %106 = add i32 %105, 1, !dbg !6717 | |
| store i32 %106, i32* %9, align 4, !dbg !6717 | |
| br label %44, !dbg !6718, !llvm.loop !6719 | |
| 107: ; preds = %44 | |
| br label %108, !dbg !6721 | |
| 108: ; preds = %107 | |
| %109 = load i32, i32* %8, align 4, !dbg !6722 | |
| %110 = add i32 %109, 1, !dbg !6722 | |
| store i32 %110, i32* %8, align 4, !dbg !6722 | |
| br label %37, !dbg !6723, !llvm.loop !6724 | |
| 111: ; preds = %37 | |
| store i64 1, i64* %4, align 8, !dbg !6726 | |
| br label %112, !dbg !6726 | |
| 112: ; preds = %111, %35 | |
| %113 = load i64, i64* %4, align 8, !dbg !6727 | |
| ret i64 %113, !dbg !6727 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixMultiplyTransA(%struct.Matrix_t* %0, %struct.Matrix_t* %1, %struct.Matrix_t* %2) #0 !dbg !6728 { | |
| %4 = alloca i64, align 8 | |
| %5 = alloca %struct.Matrix_t*, align 8 | |
| %6 = alloca %struct.Matrix_t*, align 8 | |
| %7 = alloca %struct.Matrix_t*, align 8 | |
| %8 = alloca i32, align 4 | |
| %9 = alloca i32, align 4 | |
| %10 = alloca i32, align 4 | |
| %11 = alloca i32, align 4 | |
| %12 = alloca i32, align 4 | |
| %13 = alloca double, align 8 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %5, metadata !6729, metadata !DIExpression()), !dbg !6730 | |
| store %struct.Matrix_t* %1, %struct.Matrix_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %6, metadata !6731, metadata !DIExpression()), !dbg !6732 | |
| store %struct.Matrix_t* %2, %struct.Matrix_t** %7, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %7, metadata !6733, metadata !DIExpression()), !dbg !6734 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !6735, metadata !DIExpression()), !dbg !6736 | |
| call void @llvm.dbg.declare(metadata i32* %9, metadata !6737, metadata !DIExpression()), !dbg !6738 | |
| call void @llvm.dbg.declare(metadata i32* %10, metadata !6739, metadata !DIExpression()), !dbg !6740 | |
| call void @llvm.dbg.declare(metadata i32* %11, metadata !6741, metadata !DIExpression()), !dbg !6742 | |
| %14 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6743 | |
| %15 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %14, i32 0, i32 1, !dbg !6744 | |
| %16 = load i32, i32* %15, align 4, !dbg !6744 | |
| store i32 %16, i32* %11, align 4, !dbg !6742 | |
| call void @llvm.dbg.declare(metadata i32* %12, metadata !6745, metadata !DIExpression()), !dbg !6746 | |
| %17 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6747 | |
| %18 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %17, i32 0, i32 0, !dbg !6748 | |
| %19 = load i32, i32* %18, align 8, !dbg !6748 | |
| store i32 %19, i32* %12, align 4, !dbg !6746 | |
| %20 = load i32, i32* %12, align 4, !dbg !6749 | |
| %21 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !6751 | |
| %22 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %21, i32 0, i32 0, !dbg !6752 | |
| %23 = load i32, i32* %22, align 8, !dbg !6752 | |
| %24 = icmp ne i32 %20, %23, !dbg !6753 | |
| br i1 %24, label %39, label %25, !dbg !6754 | |
| 25: ; preds = %3 | |
| %26 = load i32, i32* %11, align 4, !dbg !6755 | |
| %27 = load %struct.Matrix_t*, %struct.Matrix_t** %7, align 8, !dbg !6756 | |
| %28 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %27, i32 0, i32 0, !dbg !6757 | |
| %29 = load i32, i32* %28, align 8, !dbg !6757 | |
| %30 = icmp ne i32 %26, %29, !dbg !6758 | |
| br i1 %30, label %39, label %31, !dbg !6759 | |
| 31: ; preds = %25 | |
| %32 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !6760 | |
| %33 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %32, i32 0, i32 1, !dbg !6761 | |
| %34 = load i32, i32* %33, align 4, !dbg !6761 | |
| %35 = load %struct.Matrix_t*, %struct.Matrix_t** %7, align 8, !dbg !6762 | |
| %36 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %35, i32 0, i32 1, !dbg !6763 | |
| %37 = load i32, i32* %36, align 4, !dbg !6763 | |
| %38 = icmp ne i32 %34, %37, !dbg !6764 | |
| br i1 %38, label %39, label %40, !dbg !6765 | |
| 39: ; preds = %31, %25, %3 | |
| store i64 0, i64* %4, align 8, !dbg !6766 | |
| br label %112, !dbg !6766 | |
| 40: ; preds = %31 | |
| store i32 0, i32* %8, align 4, !dbg !6767 | |
| br label %41, !dbg !6769 | |
| 41: ; preds = %108, %40 | |
| %42 = load i32, i32* %8, align 4, !dbg !6770 | |
| %43 = load i32, i32* %11, align 4, !dbg !6772 | |
| %44 = icmp ult i32 %42, %43, !dbg !6773 | |
| br i1 %44, label %45, label %111, !dbg !6774 | |
| 45: ; preds = %41 | |
| store i32 0, i32* %9, align 4, !dbg !6775 | |
| br label %46, !dbg !6778 | |
| 46: ; preds = %104, %45 | |
| %47 = load i32, i32* %9, align 4, !dbg !6779 | |
| %48 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !6781 | |
| %49 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %48, i32 0, i32 1, !dbg !6782 | |
| %50 = load i32, i32* %49, align 4, !dbg !6782 | |
| %51 = icmp ult i32 %47, %50, !dbg !6783 | |
| br i1 %51, label %52, label %107, !dbg !6784 | |
| 52: ; preds = %46 | |
| call void @llvm.dbg.declare(metadata double* %13, metadata !6785, metadata !DIExpression()), !dbg !6787 | |
| store double 0.000000e+00, double* %13, align 8, !dbg !6787 | |
| store i32 0, i32* %10, align 4, !dbg !6788 | |
| br label %53, !dbg !6790 | |
| 53: ; preds = %87, %52 | |
| %54 = load i32, i32* %10, align 4, !dbg !6791 | |
| %55 = load i32, i32* %12, align 4, !dbg !6793 | |
| %56 = icmp ult i32 %54, %55, !dbg !6794 | |
| br i1 %56, label %57, label %90, !dbg !6795 | |
| 57: ; preds = %53 | |
| %58 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6796 | |
| %59 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %58, i32 0, i32 2, !dbg !6796 | |
| %60 = load double*, double** %59, align 8, !dbg !6796 | |
| %61 = load i32, i32* %10, align 4, !dbg !6796 | |
| %62 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6796 | |
| %63 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %62, i32 0, i32 1, !dbg !6796 | |
| %64 = load i32, i32* %63, align 4, !dbg !6796 | |
| %65 = mul i32 %61, %64, !dbg !6796 | |
| %66 = load i32, i32* %8, align 4, !dbg !6796 | |
| %67 = add i32 %65, %66, !dbg !6796 | |
| %68 = zext i32 %67 to i64, !dbg !6796 | |
| %69 = getelementptr inbounds double, double* %60, i64 %68, !dbg !6796 | |
| %70 = load double, double* %69, align 8, !dbg !6796 | |
| %71 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !6798 | |
| %72 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %71, i32 0, i32 2, !dbg !6798 | |
| %73 = load double*, double** %72, align 8, !dbg !6798 | |
| %74 = load i32, i32* %10, align 4, !dbg !6798 | |
| %75 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !6798 | |
| %76 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %75, i32 0, i32 1, !dbg !6798 | |
| %77 = load i32, i32* %76, align 4, !dbg !6798 | |
| %78 = mul i32 %74, %77, !dbg !6798 | |
| %79 = load i32, i32* %9, align 4, !dbg !6798 | |
| %80 = add i32 %78, %79, !dbg !6798 | |
| %81 = zext i32 %80 to i64, !dbg !6798 | |
| %82 = getelementptr inbounds double, double* %73, i64 %81, !dbg !6798 | |
| %83 = load double, double* %82, align 8, !dbg !6798 | |
| %84 = fmul double %70, %83, !dbg !6799 | |
| %85 = load double, double* %13, align 8, !dbg !6800 | |
| %86 = fadd double %85, %84, !dbg !6800 | |
| store double %86, double* %13, align 8, !dbg !6800 | |
| br label %87, !dbg !6801 | |
| 87: ; preds = %57 | |
| %88 = load i32, i32* %10, align 4, !dbg !6802 | |
| %89 = add i32 %88, 1, !dbg !6802 | |
| store i32 %89, i32* %10, align 4, !dbg !6802 | |
| br label %53, !dbg !6803, !llvm.loop !6804 | |
| 90: ; preds = %53 | |
| %91 = load double, double* %13, align 8, !dbg !6806 | |
| %92 = load %struct.Matrix_t*, %struct.Matrix_t** %7, align 8, !dbg !6806 | |
| %93 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %92, i32 0, i32 2, !dbg !6806 | |
| %94 = load double*, double** %93, align 8, !dbg !6806 | |
| %95 = load i32, i32* %8, align 4, !dbg !6806 | |
| %96 = load %struct.Matrix_t*, %struct.Matrix_t** %7, align 8, !dbg !6806 | |
| %97 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %96, i32 0, i32 1, !dbg !6806 | |
| %98 = load i32, i32* %97, align 4, !dbg !6806 | |
| %99 = mul i32 %95, %98, !dbg !6806 | |
| %100 = load i32, i32* %9, align 4, !dbg !6806 | |
| %101 = add i32 %99, %100, !dbg !6806 | |
| %102 = zext i32 %101 to i64, !dbg !6806 | |
| %103 = getelementptr inbounds double, double* %94, i64 %102, !dbg !6806 | |
| store double %91, double* %103, align 8, !dbg !6806 | |
| br label %104, !dbg !6807 | |
| 104: ; preds = %90 | |
| %105 = load i32, i32* %9, align 4, !dbg !6808 | |
| %106 = add i32 %105, 1, !dbg !6808 | |
| store i32 %106, i32* %9, align 4, !dbg !6808 | |
| br label %46, !dbg !6809, !llvm.loop !6810 | |
| 107: ; preds = %46 | |
| br label %108, !dbg !6812 | |
| 108: ; preds = %107 | |
| %109 = load i32, i32* %8, align 4, !dbg !6813 | |
| %110 = add i32 %109, 1, !dbg !6813 | |
| store i32 %110, i32* %8, align 4, !dbg !6813 | |
| br label %41, !dbg !6814, !llvm.loop !6815 | |
| 111: ; preds = %41 | |
| store i64 1, i64* %4, align 8, !dbg !6817 | |
| br label %112, !dbg !6817 | |
| 112: ; preds = %111, %39 | |
| %113 = load i64, i64* %4, align 8, !dbg !6818 | |
| ret i64 %113, !dbg !6818 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixMultiplyTransB(%struct.Matrix_t* %0, %struct.Matrix_t* %1, %struct.Matrix_t* %2) #0 !dbg !6819 { | |
| %4 = alloca i64, align 8 | |
| %5 = alloca %struct.Matrix_t*, align 8 | |
| %6 = alloca %struct.Matrix_t*, align 8 | |
| %7 = alloca %struct.Matrix_t*, align 8 | |
| %8 = alloca i32, align 4 | |
| %9 = alloca i32, align 4 | |
| %10 = alloca i32, align 4 | |
| %11 = alloca i32, align 4 | |
| %12 = alloca i32, align 4 | |
| %13 = alloca double, align 8 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %5, metadata !6820, metadata !DIExpression()), !dbg !6821 | |
| store %struct.Matrix_t* %1, %struct.Matrix_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %6, metadata !6822, metadata !DIExpression()), !dbg !6823 | |
| store %struct.Matrix_t* %2, %struct.Matrix_t** %7, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %7, metadata !6824, metadata !DIExpression()), !dbg !6825 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !6826, metadata !DIExpression()), !dbg !6827 | |
| call void @llvm.dbg.declare(metadata i32* %9, metadata !6828, metadata !DIExpression()), !dbg !6829 | |
| call void @llvm.dbg.declare(metadata i32* %10, metadata !6830, metadata !DIExpression()), !dbg !6831 | |
| call void @llvm.dbg.declare(metadata i32* %11, metadata !6832, metadata !DIExpression()), !dbg !6833 | |
| %14 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !6834 | |
| %15 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %14, i32 0, i32 1, !dbg !6835 | |
| %16 = load i32, i32* %15, align 4, !dbg !6835 | |
| store i32 %16, i32* %11, align 4, !dbg !6833 | |
| call void @llvm.dbg.declare(metadata i32* %12, metadata !6836, metadata !DIExpression()), !dbg !6837 | |
| %17 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !6838 | |
| %18 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %17, i32 0, i32 0, !dbg !6839 | |
| %19 = load i32, i32* %18, align 8, !dbg !6839 | |
| store i32 %19, i32* %12, align 4, !dbg !6837 | |
| %20 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6840 | |
| %21 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %20, i32 0, i32 1, !dbg !6842 | |
| %22 = load i32, i32* %21, align 4, !dbg !6842 | |
| %23 = load i32, i32* %11, align 4, !dbg !6843 | |
| %24 = icmp ne i32 %22, %23, !dbg !6844 | |
| br i1 %24, label %39, label %25, !dbg !6845 | |
| 25: ; preds = %3 | |
| %26 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6846 | |
| %27 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %26, i32 0, i32 0, !dbg !6847 | |
| %28 = load i32, i32* %27, align 8, !dbg !6847 | |
| %29 = load %struct.Matrix_t*, %struct.Matrix_t** %7, align 8, !dbg !6848 | |
| %30 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %29, i32 0, i32 0, !dbg !6849 | |
| %31 = load i32, i32* %30, align 8, !dbg !6849 | |
| %32 = icmp ne i32 %28, %31, !dbg !6850 | |
| br i1 %32, label %39, label %33, !dbg !6851 | |
| 33: ; preds = %25 | |
| %34 = load i32, i32* %12, align 4, !dbg !6852 | |
| %35 = load %struct.Matrix_t*, %struct.Matrix_t** %7, align 8, !dbg !6853 | |
| %36 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %35, i32 0, i32 1, !dbg !6854 | |
| %37 = load i32, i32* %36, align 4, !dbg !6854 | |
| %38 = icmp ne i32 %34, %37, !dbg !6855 | |
| br i1 %38, label %39, label %40, !dbg !6856 | |
| 39: ; preds = %33, %25, %3 | |
| store i64 0, i64* %4, align 8, !dbg !6857 | |
| br label %114, !dbg !6857 | |
| 40: ; preds = %33 | |
| store i32 0, i32* %8, align 4, !dbg !6858 | |
| br label %41, !dbg !6860 | |
| 41: ; preds = %110, %40 | |
| %42 = load i32, i32* %8, align 4, !dbg !6861 | |
| %43 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6863 | |
| %44 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %43, i32 0, i32 0, !dbg !6864 | |
| %45 = load i32, i32* %44, align 8, !dbg !6864 | |
| %46 = icmp ult i32 %42, %45, !dbg !6865 | |
| br i1 %46, label %47, label %113, !dbg !6866 | |
| 47: ; preds = %41 | |
| store i32 0, i32* %9, align 4, !dbg !6867 | |
| br label %48, !dbg !6870 | |
| 48: ; preds = %106, %47 | |
| %49 = load i32, i32* %9, align 4, !dbg !6871 | |
| %50 = load i32, i32* %12, align 4, !dbg !6873 | |
| %51 = icmp ult i32 %49, %50, !dbg !6874 | |
| br i1 %51, label %52, label %109, !dbg !6875 | |
| 52: ; preds = %48 | |
| call void @llvm.dbg.declare(metadata double* %13, metadata !6876, metadata !DIExpression()), !dbg !6878 | |
| store double 0.000000e+00, double* %13, align 8, !dbg !6878 | |
| store i32 0, i32* %10, align 4, !dbg !6879 | |
| br label %53, !dbg !6881 | |
| 53: ; preds = %89, %52 | |
| %54 = load i32, i32* %10, align 4, !dbg !6882 | |
| %55 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6884 | |
| %56 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %55, i32 0, i32 1, !dbg !6885 | |
| %57 = load i32, i32* %56, align 4, !dbg !6885 | |
| %58 = icmp ult i32 %54, %57, !dbg !6886 | |
| br i1 %58, label %59, label %92, !dbg !6887 | |
| 59: ; preds = %53 | |
| %60 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6888 | |
| %61 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %60, i32 0, i32 2, !dbg !6888 | |
| %62 = load double*, double** %61, align 8, !dbg !6888 | |
| %63 = load i32, i32* %8, align 4, !dbg !6888 | |
| %64 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6888 | |
| %65 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %64, i32 0, i32 1, !dbg !6888 | |
| %66 = load i32, i32* %65, align 4, !dbg !6888 | |
| %67 = mul i32 %63, %66, !dbg !6888 | |
| %68 = load i32, i32* %10, align 4, !dbg !6888 | |
| %69 = add i32 %67, %68, !dbg !6888 | |
| %70 = zext i32 %69 to i64, !dbg !6888 | |
| %71 = getelementptr inbounds double, double* %62, i64 %70, !dbg !6888 | |
| %72 = load double, double* %71, align 8, !dbg !6888 | |
| %73 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !6890 | |
| %74 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %73, i32 0, i32 2, !dbg !6890 | |
| %75 = load double*, double** %74, align 8, !dbg !6890 | |
| %76 = load i32, i32* %9, align 4, !dbg !6890 | |
| %77 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !6890 | |
| %78 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %77, i32 0, i32 1, !dbg !6890 | |
| %79 = load i32, i32* %78, align 4, !dbg !6890 | |
| %80 = mul i32 %76, %79, !dbg !6890 | |
| %81 = load i32, i32* %10, align 4, !dbg !6890 | |
| %82 = add i32 %80, %81, !dbg !6890 | |
| %83 = zext i32 %82 to i64, !dbg !6890 | |
| %84 = getelementptr inbounds double, double* %75, i64 %83, !dbg !6890 | |
| %85 = load double, double* %84, align 8, !dbg !6890 | |
| %86 = fmul double %72, %85, !dbg !6891 | |
| %87 = load double, double* %13, align 8, !dbg !6892 | |
| %88 = fadd double %87, %86, !dbg !6892 | |
| store double %88, double* %13, align 8, !dbg !6892 | |
| br label %89, !dbg !6893 | |
| 89: ; preds = %59 | |
| %90 = load i32, i32* %10, align 4, !dbg !6894 | |
| %91 = add i32 %90, 1, !dbg !6894 | |
| store i32 %91, i32* %10, align 4, !dbg !6894 | |
| br label %53, !dbg !6895, !llvm.loop !6896 | |
| 92: ; preds = %53 | |
| %93 = load double, double* %13, align 8, !dbg !6898 | |
| %94 = load %struct.Matrix_t*, %struct.Matrix_t** %7, align 8, !dbg !6898 | |
| %95 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %94, i32 0, i32 2, !dbg !6898 | |
| %96 = load double*, double** %95, align 8, !dbg !6898 | |
| %97 = load i32, i32* %8, align 4, !dbg !6898 | |
| %98 = load %struct.Matrix_t*, %struct.Matrix_t** %7, align 8, !dbg !6898 | |
| %99 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %98, i32 0, i32 1, !dbg !6898 | |
| %100 = load i32, i32* %99, align 4, !dbg !6898 | |
| %101 = mul i32 %97, %100, !dbg !6898 | |
| %102 = load i32, i32* %9, align 4, !dbg !6898 | |
| %103 = add i32 %101, %102, !dbg !6898 | |
| %104 = zext i32 %103 to i64, !dbg !6898 | |
| %105 = getelementptr inbounds double, double* %96, i64 %104, !dbg !6898 | |
| store double %93, double* %105, align 8, !dbg !6898 | |
| br label %106, !dbg !6899 | |
| 106: ; preds = %92 | |
| %107 = load i32, i32* %9, align 4, !dbg !6900 | |
| %108 = add i32 %107, 1, !dbg !6900 | |
| store i32 %108, i32* %9, align 4, !dbg !6900 | |
| br label %48, !dbg !6901, !llvm.loop !6902 | |
| 109: ; preds = %48 | |
| br label %110, !dbg !6904 | |
| 110: ; preds = %109 | |
| %111 = load i32, i32* %8, align 4, !dbg !6905 | |
| %112 = add i32 %111, 1, !dbg !6905 | |
| store i32 %112, i32* %8, align 4, !dbg !6905 | |
| br label %41, !dbg !6906, !llvm.loop !6907 | |
| 113: ; preds = %41 | |
| store i64 1, i64* %4, align 8, !dbg !6909 | |
| br label %114, !dbg !6909 | |
| 114: ; preds = %113, %39 | |
| %115 = load i64, i64* %4, align 8, !dbg !6910 | |
| ret i64 %115, !dbg !6910 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixVectorMultiply(%struct.Matrix_t* %0, %struct.Vector_t* %1, %struct.Vector_t* %2) #0 !dbg !6911 { | |
| %4 = alloca i64, align 8 | |
| %5 = alloca %struct.Matrix_t*, align 8 | |
| %6 = alloca %struct.Vector_t*, align 8 | |
| %7 = alloca %struct.Vector_t*, align 8 | |
| %8 = alloca i32, align 4 | |
| %9 = alloca i32, align 4 | |
| %10 = alloca double, align 8 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %5, metadata !6914, metadata !DIExpression()), !dbg !6915 | |
| store %struct.Vector_t* %1, %struct.Vector_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %6, metadata !6916, metadata !DIExpression()), !dbg !6917 | |
| store %struct.Vector_t* %2, %struct.Vector_t** %7, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %7, metadata !6918, metadata !DIExpression()), !dbg !6919 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !6920, metadata !DIExpression()), !dbg !6921 | |
| call void @llvm.dbg.declare(metadata i32* %9, metadata !6922, metadata !DIExpression()), !dbg !6923 | |
| %11 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6924 | |
| %12 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %11, i32 0, i32 1, !dbg !6926 | |
| %13 = load i32, i32* %12, align 4, !dbg !6926 | |
| %14 = load %struct.Vector_t*, %struct.Vector_t** %6, align 8, !dbg !6927 | |
| %15 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %14, i32 0, i32 0, !dbg !6928 | |
| %16 = load i32, i32* %15, align 8, !dbg !6928 | |
| %17 = icmp ugt i32 %13, %16, !dbg !6929 | |
| br i1 %17, label %26, label %18, !dbg !6930 | |
| 18: ; preds = %3 | |
| %19 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6931 | |
| %20 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %19, i32 0, i32 0, !dbg !6932 | |
| %21 = load i32, i32* %20, align 8, !dbg !6932 | |
| %22 = load %struct.Vector_t*, %struct.Vector_t** %7, align 8, !dbg !6933 | |
| %23 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %22, i32 0, i32 0, !dbg !6934 | |
| %24 = load i32, i32* %23, align 8, !dbg !6934 | |
| %25 = icmp ugt i32 %21, %24, !dbg !6935 | |
| br i1 %25, label %26, label %27, !dbg !6936 | |
| 26: ; preds = %18, %3 | |
| store i64 0, i64* %4, align 8, !dbg !6937 | |
| br label %80, !dbg !6937 | |
| 27: ; preds = %18 | |
| store i32 0, i32* %8, align 4, !dbg !6938 | |
| br label %28, !dbg !6940 | |
| 28: ; preds = %76, %27 | |
| %29 = load i32, i32* %8, align 4, !dbg !6941 | |
| %30 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6943 | |
| %31 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %30, i32 0, i32 0, !dbg !6944 | |
| %32 = load i32, i32* %31, align 8, !dbg !6944 | |
| %33 = icmp ult i32 %29, %32, !dbg !6945 | |
| br i1 %33, label %34, label %79, !dbg !6946 | |
| 34: ; preds = %28 | |
| call void @llvm.dbg.declare(metadata double* %10, metadata !6947, metadata !DIExpression()), !dbg !6949 | |
| store double 0.000000e+00, double* %10, align 8, !dbg !6949 | |
| store i32 0, i32* %9, align 4, !dbg !6950 | |
| br label %35, !dbg !6952 | |
| 35: ; preds = %65, %34 | |
| %36 = load i32, i32* %9, align 4, !dbg !6953 | |
| %37 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6955 | |
| %38 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %37, i32 0, i32 1, !dbg !6956 | |
| %39 = load i32, i32* %38, align 4, !dbg !6956 | |
| %40 = icmp ult i32 %36, %39, !dbg !6957 | |
| br i1 %40, label %41, label %68, !dbg !6958 | |
| 41: ; preds = %35 | |
| %42 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6959 | |
| %43 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %42, i32 0, i32 2, !dbg !6959 | |
| %44 = load double*, double** %43, align 8, !dbg !6959 | |
| %45 = load i32, i32* %8, align 4, !dbg !6959 | |
| %46 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6959 | |
| %47 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %46, i32 0, i32 1, !dbg !6959 | |
| %48 = load i32, i32* %47, align 4, !dbg !6959 | |
| %49 = mul i32 %45, %48, !dbg !6959 | |
| %50 = load i32, i32* %9, align 4, !dbg !6959 | |
| %51 = add i32 %49, %50, !dbg !6959 | |
| %52 = zext i32 %51 to i64, !dbg !6959 | |
| %53 = getelementptr inbounds double, double* %44, i64 %52, !dbg !6959 | |
| %54 = load double, double* %53, align 8, !dbg !6959 | |
| %55 = load %struct.Vector_t*, %struct.Vector_t** %6, align 8, !dbg !6961 | |
| %56 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %55, i32 0, i32 1, !dbg !6962 | |
| %57 = load double*, double** %56, align 8, !dbg !6962 | |
| %58 = load i32, i32* %9, align 4, !dbg !6963 | |
| %59 = zext i32 %58 to i64, !dbg !6961 | |
| %60 = getelementptr inbounds double, double* %57, i64 %59, !dbg !6961 | |
| %61 = load double, double* %60, align 8, !dbg !6961 | |
| %62 = fmul double %54, %61, !dbg !6964 | |
| %63 = load double, double* %10, align 8, !dbg !6965 | |
| %64 = fadd double %63, %62, !dbg !6965 | |
| store double %64, double* %10, align 8, !dbg !6965 | |
| br label %65, !dbg !6966 | |
| 65: ; preds = %41 | |
| %66 = load i32, i32* %9, align 4, !dbg !6967 | |
| %67 = add i32 %66, 1, !dbg !6967 | |
| store i32 %67, i32* %9, align 4, !dbg !6967 | |
| br label %35, !dbg !6968, !llvm.loop !6969 | |
| 68: ; preds = %35 | |
| %69 = load double, double* %10, align 8, !dbg !6971 | |
| %70 = load %struct.Vector_t*, %struct.Vector_t** %7, align 8, !dbg !6972 | |
| %71 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %70, i32 0, i32 1, !dbg !6973 | |
| %72 = load double*, double** %71, align 8, !dbg !6973 | |
| %73 = load i32, i32* %8, align 4, !dbg !6974 | |
| %74 = zext i32 %73 to i64, !dbg !6972 | |
| %75 = getelementptr inbounds double, double* %72, i64 %74, !dbg !6972 | |
| store double %69, double* %75, align 8, !dbg !6975 | |
| br label %76, !dbg !6976 | |
| 76: ; preds = %68 | |
| %77 = load i32, i32* %8, align 4, !dbg !6977 | |
| %78 = add i32 %77, 1, !dbg !6977 | |
| store i32 %78, i32* %8, align 4, !dbg !6977 | |
| br label %28, !dbg !6978, !llvm.loop !6979 | |
| 79: ; preds = %28 | |
| store i64 1, i64* %4, align 8, !dbg !6981 | |
| br label %80, !dbg !6981 | |
| 80: ; preds = %79, %26 | |
| %81 = load i64, i64* %4, align 8, !dbg !6982 | |
| ret i64 %81, !dbg !6982 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixVectorMultiplyTransA(%struct.Matrix_t* %0, %struct.Vector_t* %1, %struct.Vector_t* %2) #0 !dbg !6983 { | |
| %4 = alloca i64, align 8 | |
| %5 = alloca %struct.Matrix_t*, align 8 | |
| %6 = alloca %struct.Vector_t*, align 8 | |
| %7 = alloca %struct.Vector_t*, align 8 | |
| %8 = alloca i32, align 4 | |
| %9 = alloca i32, align 4 | |
| %10 = alloca i32, align 4 | |
| %11 = alloca i32, align 4 | |
| %12 = alloca double, align 8 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %5, metadata !6984, metadata !DIExpression()), !dbg !6985 | |
| store %struct.Vector_t* %1, %struct.Vector_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %6, metadata !6986, metadata !DIExpression()), !dbg !6987 | |
| store %struct.Vector_t* %2, %struct.Vector_t** %7, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vector_t** %7, metadata !6988, metadata !DIExpression()), !dbg !6989 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !6990, metadata !DIExpression()), !dbg !6991 | |
| call void @llvm.dbg.declare(metadata i32* %9, metadata !6992, metadata !DIExpression()), !dbg !6993 | |
| call void @llvm.dbg.declare(metadata i32* %10, metadata !6994, metadata !DIExpression()), !dbg !6995 | |
| %13 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !6996 | |
| %14 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %13, i32 0, i32 1, !dbg !6997 | |
| %15 = load i32, i32* %14, align 4, !dbg !6997 | |
| store i32 %15, i32* %10, align 4, !dbg !6995 | |
| call void @llvm.dbg.declare(metadata i32* %11, metadata !6998, metadata !DIExpression()), !dbg !6999 | |
| %16 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7000 | |
| %17 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %16, i32 0, i32 0, !dbg !7001 | |
| %18 = load i32, i32* %17, align 8, !dbg !7001 | |
| store i32 %18, i32* %11, align 4, !dbg !6999 | |
| %19 = load i32, i32* %11, align 4, !dbg !7002 | |
| %20 = load %struct.Vector_t*, %struct.Vector_t** %6, align 8, !dbg !7004 | |
| %21 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %20, i32 0, i32 0, !dbg !7005 | |
| %22 = load i32, i32* %21, align 8, !dbg !7005 | |
| %23 = icmp ugt i32 %19, %22, !dbg !7006 | |
| br i1 %23, label %30, label %24, !dbg !7007 | |
| 24: ; preds = %3 | |
| %25 = load i32, i32* %10, align 4, !dbg !7008 | |
| %26 = load %struct.Vector_t*, %struct.Vector_t** %7, align 8, !dbg !7009 | |
| %27 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %26, i32 0, i32 0, !dbg !7010 | |
| %28 = load i32, i32* %27, align 8, !dbg !7010 | |
| %29 = icmp ugt i32 %25, %28, !dbg !7011 | |
| br i1 %29, label %30, label %31, !dbg !7012 | |
| 30: ; preds = %24, %3 | |
| store i64 0, i64* %4, align 8, !dbg !7013 | |
| br label %80, !dbg !7013 | |
| 31: ; preds = %24 | |
| store i32 0, i32* %8, align 4, !dbg !7014 | |
| br label %32, !dbg !7016 | |
| 32: ; preds = %76, %31 | |
| %33 = load i32, i32* %8, align 4, !dbg !7017 | |
| %34 = load i32, i32* %10, align 4, !dbg !7019 | |
| %35 = icmp ult i32 %33, %34, !dbg !7020 | |
| br i1 %35, label %36, label %79, !dbg !7021 | |
| 36: ; preds = %32 | |
| call void @llvm.dbg.declare(metadata double* %12, metadata !7022, metadata !DIExpression()), !dbg !7024 | |
| store double 0.000000e+00, double* %12, align 8, !dbg !7024 | |
| store i32 0, i32* %9, align 4, !dbg !7025 | |
| br label %37, !dbg !7027 | |
| 37: ; preds = %65, %36 | |
| %38 = load i32, i32* %9, align 4, !dbg !7028 | |
| %39 = load i32, i32* %11, align 4, !dbg !7030 | |
| %40 = icmp ult i32 %38, %39, !dbg !7031 | |
| br i1 %40, label %41, label %68, !dbg !7032 | |
| 41: ; preds = %37 | |
| %42 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7033 | |
| %43 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %42, i32 0, i32 2, !dbg !7033 | |
| %44 = load double*, double** %43, align 8, !dbg !7033 | |
| %45 = load i32, i32* %9, align 4, !dbg !7033 | |
| %46 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7033 | |
| %47 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %46, i32 0, i32 1, !dbg !7033 | |
| %48 = load i32, i32* %47, align 4, !dbg !7033 | |
| %49 = mul i32 %45, %48, !dbg !7033 | |
| %50 = load i32, i32* %8, align 4, !dbg !7033 | |
| %51 = add i32 %49, %50, !dbg !7033 | |
| %52 = zext i32 %51 to i64, !dbg !7033 | |
| %53 = getelementptr inbounds double, double* %44, i64 %52, !dbg !7033 | |
| %54 = load double, double* %53, align 8, !dbg !7033 | |
| %55 = load %struct.Vector_t*, %struct.Vector_t** %6, align 8, !dbg !7035 | |
| %56 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %55, i32 0, i32 1, !dbg !7036 | |
| %57 = load double*, double** %56, align 8, !dbg !7036 | |
| %58 = load i32, i32* %9, align 4, !dbg !7037 | |
| %59 = zext i32 %58 to i64, !dbg !7035 | |
| %60 = getelementptr inbounds double, double* %57, i64 %59, !dbg !7035 | |
| %61 = load double, double* %60, align 8, !dbg !7035 | |
| %62 = fmul double %54, %61, !dbg !7038 | |
| %63 = load double, double* %12, align 8, !dbg !7039 | |
| %64 = fadd double %63, %62, !dbg !7039 | |
| store double %64, double* %12, align 8, !dbg !7039 | |
| br label %65, !dbg !7040 | |
| 65: ; preds = %41 | |
| %66 = load i32, i32* %9, align 4, !dbg !7041 | |
| %67 = add i32 %66, 1, !dbg !7041 | |
| store i32 %67, i32* %9, align 4, !dbg !7041 | |
| br label %37, !dbg !7042, !llvm.loop !7043 | |
| 68: ; preds = %37 | |
| %69 = load double, double* %12, align 8, !dbg !7045 | |
| %70 = load %struct.Vector_t*, %struct.Vector_t** %7, align 8, !dbg !7046 | |
| %71 = getelementptr inbounds %struct.Vector_t, %struct.Vector_t* %70, i32 0, i32 1, !dbg !7047 | |
| %72 = load double*, double** %71, align 8, !dbg !7047 | |
| %73 = load i32, i32* %8, align 4, !dbg !7048 | |
| %74 = zext i32 %73 to i64, !dbg !7046 | |
| %75 = getelementptr inbounds double, double* %72, i64 %74, !dbg !7046 | |
| store double %69, double* %75, align 8, !dbg !7049 | |
| br label %76, !dbg !7050 | |
| 76: ; preds = %68 | |
| %77 = load i32, i32* %8, align 4, !dbg !7051 | |
| %78 = add i32 %77, 1, !dbg !7051 | |
| store i32 %78, i32* %8, align 4, !dbg !7051 | |
| br label %32, !dbg !7052, !llvm.loop !7053 | |
| 79: ; preds = %32 | |
| store i64 1, i64* %4, align 8, !dbg !7055 | |
| br label %80, !dbg !7055 | |
| 80: ; preds = %79, %30 | |
| %81 = load i64, i64* %4, align 8, !dbg !7056 | |
| ret i64 %81, !dbg !7056 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixAdd(%struct.Matrix_t* %0, %struct.Matrix_t* %1, %struct.Matrix_t* %2) #0 !dbg !7057 { | |
| %4 = alloca i64, align 8 | |
| %5 = alloca %struct.Matrix_t*, align 8 | |
| %6 = alloca %struct.Matrix_t*, align 8 | |
| %7 = alloca %struct.Matrix_t*, align 8 | |
| %8 = alloca i32, align 4 | |
| %9 = alloca i32, align 4 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %5, metadata !7058, metadata !DIExpression()), !dbg !7059 | |
| store %struct.Matrix_t* %1, %struct.Matrix_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %6, metadata !7060, metadata !DIExpression()), !dbg !7061 | |
| store %struct.Matrix_t* %2, %struct.Matrix_t** %7, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %7, metadata !7062, metadata !DIExpression()), !dbg !7063 | |
| %10 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7064 | |
| %11 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %10, i32 0, i32 0, !dbg !7066 | |
| %12 = load i32, i32* %11, align 8, !dbg !7066 | |
| %13 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !7067 | |
| %14 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %13, i32 0, i32 0, !dbg !7068 | |
| %15 = load i32, i32* %14, align 8, !dbg !7068 | |
| %16 = icmp eq i32 %12, %15, !dbg !7069 | |
| br i1 %16, label %17, label %79, !dbg !7070 | |
| 17: ; preds = %3 | |
| %18 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !7071 | |
| %19 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %18, i32 0, i32 0, !dbg !7072 | |
| %20 = load i32, i32* %19, align 8, !dbg !7072 | |
| %21 = load %struct.Matrix_t*, %struct.Matrix_t** %7, align 8, !dbg !7073 | |
| %22 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %21, i32 0, i32 0, !dbg !7074 | |
| %23 = load i32, i32* %22, align 8, !dbg !7074 | |
| %24 = icmp eq i32 %20, %23, !dbg !7075 | |
| br i1 %24, label %25, label %79, !dbg !7076 | |
| 25: ; preds = %17 | |
| %26 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7077 | |
| %27 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %26, i32 0, i32 1, !dbg !7078 | |
| %28 = load i32, i32* %27, align 4, !dbg !7078 | |
| %29 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !7079 | |
| %30 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %29, i32 0, i32 1, !dbg !7080 | |
| %31 = load i32, i32* %30, align 4, !dbg !7080 | |
| %32 = icmp eq i32 %28, %31, !dbg !7081 | |
| br i1 %32, label %33, label %79, !dbg !7082 | |
| 33: ; preds = %25 | |
| %34 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !7083 | |
| %35 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %34, i32 0, i32 1, !dbg !7084 | |
| %36 = load i32, i32* %35, align 4, !dbg !7084 | |
| %37 = load %struct.Matrix_t*, %struct.Matrix_t** %7, align 8, !dbg !7085 | |
| %38 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %37, i32 0, i32 1, !dbg !7086 | |
| %39 = load i32, i32* %38, align 4, !dbg !7086 | |
| %40 = icmp eq i32 %36, %39, !dbg !7087 | |
| br i1 %40, label %41, label %79, !dbg !7088 | |
| 41: ; preds = %33 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !7089, metadata !DIExpression()), !dbg !7091 | |
| %42 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7092 | |
| %43 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %42, i32 0, i32 0, !dbg !7093 | |
| %44 = load i32, i32* %43, align 8, !dbg !7093 | |
| %45 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !7094 | |
| %46 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %45, i32 0, i32 1, !dbg !7095 | |
| %47 = load i32, i32* %46, align 4, !dbg !7095 | |
| %48 = mul i32 %44, %47, !dbg !7096 | |
| store i32 %48, i32* %8, align 4, !dbg !7091 | |
| call void @llvm.dbg.declare(metadata i32* %9, metadata !7097, metadata !DIExpression()), !dbg !7098 | |
| store i32 0, i32* %9, align 4, !dbg !7099 | |
| br label %49, !dbg !7101 | |
| 49: ; preds = %75, %41 | |
| %50 = load i32, i32* %9, align 4, !dbg !7102 | |
| %51 = load i32, i32* %8, align 4, !dbg !7104 | |
| %52 = icmp ult i32 %50, %51, !dbg !7105 | |
| br i1 %52, label %53, label %78, !dbg !7106 | |
| 53: ; preds = %49 | |
| %54 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7107 | |
| %55 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %54, i32 0, i32 2, !dbg !7108 | |
| %56 = load double*, double** %55, align 8, !dbg !7108 | |
| %57 = load i32, i32* %9, align 4, !dbg !7109 | |
| %58 = zext i32 %57 to i64, !dbg !7107 | |
| %59 = getelementptr inbounds double, double* %56, i64 %58, !dbg !7107 | |
| %60 = load double, double* %59, align 8, !dbg !7107 | |
| %61 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !7110 | |
| %62 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %61, i32 0, i32 2, !dbg !7111 | |
| %63 = load double*, double** %62, align 8, !dbg !7111 | |
| %64 = load i32, i32* %9, align 4, !dbg !7112 | |
| %65 = zext i32 %64 to i64, !dbg !7110 | |
| %66 = getelementptr inbounds double, double* %63, i64 %65, !dbg !7110 | |
| %67 = load double, double* %66, align 8, !dbg !7110 | |
| %68 = fadd double %60, %67, !dbg !7113 | |
| %69 = load %struct.Matrix_t*, %struct.Matrix_t** %7, align 8, !dbg !7114 | |
| %70 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %69, i32 0, i32 2, !dbg !7115 | |
| %71 = load double*, double** %70, align 8, !dbg !7115 | |
| %72 = load i32, i32* %9, align 4, !dbg !7116 | |
| %73 = zext i32 %72 to i64, !dbg !7114 | |
| %74 = getelementptr inbounds double, double* %71, i64 %73, !dbg !7114 | |
| store double %68, double* %74, align 8, !dbg !7117 | |
| br label %75, !dbg !7114 | |
| 75: ; preds = %53 | |
| %76 = load i32, i32* %9, align 4, !dbg !7118 | |
| %77 = add i32 %76, 1, !dbg !7118 | |
| store i32 %77, i32* %9, align 4, !dbg !7118 | |
| br label %49, !dbg !7119, !llvm.loop !7120 | |
| 78: ; preds = %49 | |
| store i64 1, i64* %4, align 8, !dbg !7122 | |
| br label %80, !dbg !7122 | |
| 79: ; preds = %33, %25, %17, %3 | |
| store i64 0, i64* %4, align 8, !dbg !7123 | |
| br label %80, !dbg !7123 | |
| 80: ; preds = %79, %78 | |
| %81 = load i64, i64* %4, align 8, !dbg !7124 | |
| ret i64 %81, !dbg !7124 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixAddEquals(%struct.Matrix_t* %0, %struct.Matrix_t* %1) #0 !dbg !7125 { | |
| %3 = alloca i64, align 8 | |
| %4 = alloca %struct.Matrix_t*, align 8 | |
| %5 = alloca %struct.Matrix_t*, align 8 | |
| %6 = alloca i32, align 4 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %4, metadata !7128, metadata !DIExpression()), !dbg !7129 | |
| store %struct.Matrix_t* %1, %struct.Matrix_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %5, metadata !7130, metadata !DIExpression()), !dbg !7131 | |
| %7 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7132 | |
| %8 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %7, i32 0, i32 0, !dbg !7134 | |
| %9 = load i32, i32* %8, align 8, !dbg !7134 | |
| %10 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7135 | |
| %11 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %10, i32 0, i32 0, !dbg !7136 | |
| %12 = load i32, i32* %11, align 8, !dbg !7136 | |
| %13 = icmp eq i32 %9, %12, !dbg !7137 | |
| br i1 %13, label %14, label %53, !dbg !7138 | |
| 14: ; preds = %2 | |
| %15 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7139 | |
| %16 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %15, i32 0, i32 1, !dbg !7140 | |
| %17 = load i32, i32* %16, align 4, !dbg !7140 | |
| %18 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7141 | |
| %19 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %18, i32 0, i32 1, !dbg !7142 | |
| %20 = load i32, i32* %19, align 4, !dbg !7142 | |
| %21 = icmp eq i32 %17, %20, !dbg !7143 | |
| br i1 %21, label %22, label %53, !dbg !7144 | |
| 22: ; preds = %14 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !7145, metadata !DIExpression()), !dbg !7147 | |
| store i32 0, i32* %6, align 4, !dbg !7148 | |
| br label %23, !dbg !7150 | |
| 23: ; preds = %49, %22 | |
| %24 = load i32, i32* %6, align 4, !dbg !7151 | |
| %25 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7153 | |
| %26 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %25, i32 0, i32 0, !dbg !7154 | |
| %27 = load i32, i32* %26, align 8, !dbg !7154 | |
| %28 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7155 | |
| %29 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %28, i32 0, i32 1, !dbg !7156 | |
| %30 = load i32, i32* %29, align 4, !dbg !7156 | |
| %31 = mul i32 %27, %30, !dbg !7157 | |
| %32 = icmp ult i32 %24, %31, !dbg !7158 | |
| br i1 %32, label %33, label %52, !dbg !7159 | |
| 33: ; preds = %23 | |
| %34 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7160 | |
| %35 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %34, i32 0, i32 2, !dbg !7161 | |
| %36 = load double*, double** %35, align 8, !dbg !7161 | |
| %37 = load i32, i32* %6, align 4, !dbg !7162 | |
| %38 = zext i32 %37 to i64, !dbg !7160 | |
| %39 = getelementptr inbounds double, double* %36, i64 %38, !dbg !7160 | |
| %40 = load double, double* %39, align 8, !dbg !7160 | |
| %41 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7163 | |
| %42 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %41, i32 0, i32 2, !dbg !7164 | |
| %43 = load double*, double** %42, align 8, !dbg !7164 | |
| %44 = load i32, i32* %6, align 4, !dbg !7165 | |
| %45 = zext i32 %44 to i64, !dbg !7163 | |
| %46 = getelementptr inbounds double, double* %43, i64 %45, !dbg !7163 | |
| %47 = load double, double* %46, align 8, !dbg !7166 | |
| %48 = fadd double %47, %40, !dbg !7166 | |
| store double %48, double* %46, align 8, !dbg !7166 | |
| br label %49, !dbg !7163 | |
| 49: ; preds = %33 | |
| %50 = load i32, i32* %6, align 4, !dbg !7167 | |
| %51 = add i32 %50, 1, !dbg !7167 | |
| store i32 %51, i32* %6, align 4, !dbg !7167 | |
| br label %23, !dbg !7168, !llvm.loop !7169 | |
| 52: ; preds = %23 | |
| store i64 1, i64* %3, align 8, !dbg !7171 | |
| br label %54, !dbg !7171 | |
| 53: ; preds = %14, %2 | |
| store i64 0, i64* %3, align 8, !dbg !7172 | |
| br label %54, !dbg !7172 | |
| 54: ; preds = %53, %52 | |
| %55 = load i64, i64* %3, align 8, !dbg !7173 | |
| ret i64 %55, !dbg !7173 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @matrixScale(%struct.Matrix_t* %0, double %1) #0 !dbg !7174 { | |
| %3 = alloca %struct.Matrix_t*, align 8 | |
| %4 = alloca double, align 8 | |
| %5 = alloca i32, align 4 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %3, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %3, metadata !7177, metadata !DIExpression()), !dbg !7178 | |
| store double %1, double* %4, align 8 | |
| call void @llvm.dbg.declare(metadata double* %4, metadata !7179, metadata !DIExpression()), !dbg !7180 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !7181, metadata !DIExpression()), !dbg !7182 | |
| store i32 0, i32* %5, align 4, !dbg !7183 | |
| br label %6, !dbg !7185 | |
| 6: ; preds = %26, %2 | |
| %7 = load i32, i32* %5, align 4, !dbg !7186 | |
| %8 = load %struct.Matrix_t*, %struct.Matrix_t** %3, align 8, !dbg !7188 | |
| %9 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %8, i32 0, i32 0, !dbg !7189 | |
| %10 = load i32, i32* %9, align 8, !dbg !7189 | |
| %11 = load %struct.Matrix_t*, %struct.Matrix_t** %3, align 8, !dbg !7190 | |
| %12 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %11, i32 0, i32 1, !dbg !7191 | |
| %13 = load i32, i32* %12, align 4, !dbg !7191 | |
| %14 = mul i32 %10, %13, !dbg !7192 | |
| %15 = icmp ult i32 %7, %14, !dbg !7193 | |
| br i1 %15, label %16, label %29, !dbg !7194 | |
| 16: ; preds = %6 | |
| %17 = load double, double* %4, align 8, !dbg !7195 | |
| %18 = load %struct.Matrix_t*, %struct.Matrix_t** %3, align 8, !dbg !7196 | |
| %19 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %18, i32 0, i32 2, !dbg !7197 | |
| %20 = load double*, double** %19, align 8, !dbg !7197 | |
| %21 = load i32, i32* %5, align 4, !dbg !7198 | |
| %22 = zext i32 %21 to i64, !dbg !7196 | |
| %23 = getelementptr inbounds double, double* %20, i64 %22, !dbg !7196 | |
| %24 = load double, double* %23, align 8, !dbg !7199 | |
| %25 = fmul double %24, %17, !dbg !7199 | |
| store double %25, double* %23, align 8, !dbg !7199 | |
| br label %26, !dbg !7196 | |
| 26: ; preds = %16 | |
| %27 = load i32, i32* %5, align 4, !dbg !7200 | |
| %28 = add i32 %27, 1, !dbg !7200 | |
| store i32 %28, i32* %5, align 4, !dbg !7200 | |
| br label %6, !dbg !7201, !llvm.loop !7202 | |
| 29: ; preds = %6 | |
| ret void, !dbg !7204 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixAverage(%struct.Matrix_t* %0, %struct.Matrix_t* %1, %struct.Matrix_t* %2) #0 !dbg !7205 { | |
| %4 = alloca i64, align 8 | |
| %5 = alloca %struct.Matrix_t*, align 8 | |
| %6 = alloca %struct.Matrix_t*, align 8 | |
| %7 = alloca %struct.Matrix_t*, align 8 | |
| %8 = alloca i32, align 4 | |
| %9 = alloca i32, align 4 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %5, metadata !7206, metadata !DIExpression()), !dbg !7207 | |
| store %struct.Matrix_t* %1, %struct.Matrix_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %6, metadata !7208, metadata !DIExpression()), !dbg !7209 | |
| store %struct.Matrix_t* %2, %struct.Matrix_t** %7, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %7, metadata !7210, metadata !DIExpression()), !dbg !7211 | |
| %10 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7212 | |
| %11 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %10, i32 0, i32 0, !dbg !7214 | |
| %12 = load i32, i32* %11, align 8, !dbg !7214 | |
| %13 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !7215 | |
| %14 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %13, i32 0, i32 0, !dbg !7216 | |
| %15 = load i32, i32* %14, align 8, !dbg !7216 | |
| %16 = icmp eq i32 %12, %15, !dbg !7217 | |
| br i1 %16, label %17, label %80, !dbg !7218 | |
| 17: ; preds = %3 | |
| %18 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !7219 | |
| %19 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %18, i32 0, i32 0, !dbg !7220 | |
| %20 = load i32, i32* %19, align 8, !dbg !7220 | |
| %21 = load %struct.Matrix_t*, %struct.Matrix_t** %7, align 8, !dbg !7221 | |
| %22 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %21, i32 0, i32 0, !dbg !7222 | |
| %23 = load i32, i32* %22, align 8, !dbg !7222 | |
| %24 = icmp eq i32 %20, %23, !dbg !7223 | |
| br i1 %24, label %25, label %80, !dbg !7224 | |
| 25: ; preds = %17 | |
| %26 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7225 | |
| %27 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %26, i32 0, i32 1, !dbg !7226 | |
| %28 = load i32, i32* %27, align 4, !dbg !7226 | |
| %29 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !7227 | |
| %30 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %29, i32 0, i32 1, !dbg !7228 | |
| %31 = load i32, i32* %30, align 4, !dbg !7228 | |
| %32 = icmp eq i32 %28, %31, !dbg !7229 | |
| br i1 %32, label %33, label %80, !dbg !7230 | |
| 33: ; preds = %25 | |
| %34 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !7231 | |
| %35 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %34, i32 0, i32 1, !dbg !7232 | |
| %36 = load i32, i32* %35, align 4, !dbg !7232 | |
| %37 = load %struct.Matrix_t*, %struct.Matrix_t** %7, align 8, !dbg !7233 | |
| %38 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %37, i32 0, i32 1, !dbg !7234 | |
| %39 = load i32, i32* %38, align 4, !dbg !7234 | |
| %40 = icmp eq i32 %36, %39, !dbg !7235 | |
| br i1 %40, label %41, label %80, !dbg !7236 | |
| 41: ; preds = %33 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !7237, metadata !DIExpression()), !dbg !7239 | |
| %42 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7240 | |
| %43 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %42, i32 0, i32 0, !dbg !7241 | |
| %44 = load i32, i32* %43, align 8, !dbg !7241 | |
| %45 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !7242 | |
| %46 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %45, i32 0, i32 1, !dbg !7243 | |
| %47 = load i32, i32* %46, align 4, !dbg !7243 | |
| %48 = mul i32 %44, %47, !dbg !7244 | |
| store i32 %48, i32* %8, align 4, !dbg !7239 | |
| call void @llvm.dbg.declare(metadata i32* %9, metadata !7245, metadata !DIExpression()), !dbg !7246 | |
| store i32 0, i32* %9, align 4, !dbg !7247 | |
| br label %49, !dbg !7249 | |
| 49: ; preds = %76, %41 | |
| %50 = load i32, i32* %9, align 4, !dbg !7250 | |
| %51 = load i32, i32* %8, align 4, !dbg !7252 | |
| %52 = icmp ult i32 %50, %51, !dbg !7253 | |
| br i1 %52, label %53, label %79, !dbg !7254 | |
| 53: ; preds = %49 | |
| %54 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7255 | |
| %55 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %54, i32 0, i32 2, !dbg !7256 | |
| %56 = load double*, double** %55, align 8, !dbg !7256 | |
| %57 = load i32, i32* %9, align 4, !dbg !7257 | |
| %58 = zext i32 %57 to i64, !dbg !7255 | |
| %59 = getelementptr inbounds double, double* %56, i64 %58, !dbg !7255 | |
| %60 = load double, double* %59, align 8, !dbg !7255 | |
| %61 = load %struct.Matrix_t*, %struct.Matrix_t** %6, align 8, !dbg !7258 | |
| %62 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %61, i32 0, i32 2, !dbg !7259 | |
| %63 = load double*, double** %62, align 8, !dbg !7259 | |
| %64 = load i32, i32* %9, align 4, !dbg !7260 | |
| %65 = zext i32 %64 to i64, !dbg !7258 | |
| %66 = getelementptr inbounds double, double* %63, i64 %65, !dbg !7258 | |
| %67 = load double, double* %66, align 8, !dbg !7258 | |
| %68 = fadd double %60, %67, !dbg !7261 | |
| %69 = fmul double %68, 5.000000e-01, !dbg !7262 | |
| %70 = load %struct.Matrix_t*, %struct.Matrix_t** %7, align 8, !dbg !7263 | |
| %71 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %70, i32 0, i32 2, !dbg !7264 | |
| %72 = load double*, double** %71, align 8, !dbg !7264 | |
| %73 = load i32, i32* %9, align 4, !dbg !7265 | |
| %74 = zext i32 %73 to i64, !dbg !7263 | |
| %75 = getelementptr inbounds double, double* %72, i64 %74, !dbg !7263 | |
| store double %69, double* %75, align 8, !dbg !7266 | |
| br label %76, !dbg !7263 | |
| 76: ; preds = %53 | |
| %77 = load i32, i32* %9, align 4, !dbg !7267 | |
| %78 = add i32 %77, 1, !dbg !7267 | |
| store i32 %78, i32* %9, align 4, !dbg !7267 | |
| br label %49, !dbg !7268, !llvm.loop !7269 | |
| 79: ; preds = %49 | |
| store i64 1, i64* %4, align 8, !dbg !7271 | |
| br label %81, !dbg !7271 | |
| 80: ; preds = %33, %25, %17, %3 | |
| store i64 0, i64* %4, align 8, !dbg !7272 | |
| br label %81, !dbg !7272 | |
| 81: ; preds = %80, %79 | |
| %82 = load i64, i64* %4, align 8, !dbg !7273 | |
| ret i64 %82, !dbg !7273 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @matrixAddIdentity(%struct.Matrix_t* %0) #0 !dbg !7274 { | |
| %2 = alloca %struct.Matrix_t*, align 8 | |
| %3 = alloca i32, align 4 | |
| %4 = alloca i32, align 4 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %2, metadata !7275, metadata !DIExpression()), !dbg !7276 | |
| call void @llvm.dbg.declare(metadata i32* %3, metadata !7277, metadata !DIExpression()), !dbg !7278 | |
| %5 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7279 | |
| %6 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %5, i32 0, i32 0, !dbg !7280 | |
| %7 = load i32, i32* %6, align 8, !dbg !7280 | |
| store i32 %7, i32* %3, align 4, !dbg !7278 | |
| call void @llvm.dbg.declare(metadata i32* %4, metadata !7281, metadata !DIExpression()), !dbg !7282 | |
| %8 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7283 | |
| %9 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %8, i32 0, i32 1, !dbg !7285 | |
| %10 = load i32, i32* %9, align 4, !dbg !7285 | |
| %11 = load i32, i32* %3, align 4, !dbg !7286 | |
| %12 = icmp ult i32 %10, %11, !dbg !7287 | |
| br i1 %12, label %13, label %17, !dbg !7288 | |
| 13: ; preds = %1 | |
| %14 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7289 | |
| %15 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %14, i32 0, i32 1, !dbg !7290 | |
| %16 = load i32, i32* %15, align 4, !dbg !7290 | |
| store i32 %16, i32* %3, align 4, !dbg !7291 | |
| br label %17, !dbg !7292 | |
| 17: ; preds = %13, %1 | |
| store i32 0, i32* %4, align 4, !dbg !7293 | |
| br label %18, !dbg !7295 | |
| 18: ; preds = %37, %17 | |
| %19 = load i32, i32* %4, align 4, !dbg !7296 | |
| %20 = load i32, i32* %3, align 4, !dbg !7298 | |
| %21 = icmp ult i32 %19, %20, !dbg !7299 | |
| br i1 %21, label %22, label %40, !dbg !7300 | |
| 22: ; preds = %18 | |
| %23 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7301 | |
| %24 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %23, i32 0, i32 2, !dbg !7301 | |
| %25 = load double*, double** %24, align 8, !dbg !7301 | |
| %26 = load i32, i32* %4, align 4, !dbg !7301 | |
| %27 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7301 | |
| %28 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %27, i32 0, i32 1, !dbg !7301 | |
| %29 = load i32, i32* %28, align 4, !dbg !7301 | |
| %30 = mul i32 %26, %29, !dbg !7301 | |
| %31 = load i32, i32* %4, align 4, !dbg !7301 | |
| %32 = add i32 %30, %31, !dbg !7301 | |
| %33 = zext i32 %32 to i64, !dbg !7301 | |
| %34 = getelementptr inbounds double, double* %25, i64 %33, !dbg !7301 | |
| %35 = load double, double* %34, align 8, !dbg !7302 | |
| %36 = fadd double %35, 1.000000e+00, !dbg !7302 | |
| store double %36, double* %34, align 8, !dbg !7302 | |
| br label %37, !dbg !7301 | |
| 37: ; preds = %22 | |
| %38 = load i32, i32* %4, align 4, !dbg !7303 | |
| %39 = add i32 %38, 1, !dbg !7303 | |
| store i32 %39, i32* %4, align 4, !dbg !7303 | |
| br label %18, !dbg !7304, !llvm.loop !7305 | |
| 40: ; preds = %18 | |
| ret void, !dbg !7307 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @matrixMinusIdentity(%struct.Matrix_t* %0) #0 !dbg !7308 { | |
| %2 = alloca %struct.Matrix_t*, align 8 | |
| %3 = alloca i32, align 4 | |
| %4 = alloca i32, align 4 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %2, metadata !7309, metadata !DIExpression()), !dbg !7310 | |
| call void @llvm.dbg.declare(metadata i32* %3, metadata !7311, metadata !DIExpression()), !dbg !7312 | |
| %5 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7313 | |
| %6 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %5, i32 0, i32 0, !dbg !7314 | |
| %7 = load i32, i32* %6, align 8, !dbg !7314 | |
| store i32 %7, i32* %3, align 4, !dbg !7312 | |
| call void @llvm.dbg.declare(metadata i32* %4, metadata !7315, metadata !DIExpression()), !dbg !7316 | |
| %8 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7317 | |
| %9 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %8, i32 0, i32 1, !dbg !7319 | |
| %10 = load i32, i32* %9, align 4, !dbg !7319 | |
| %11 = load i32, i32* %3, align 4, !dbg !7320 | |
| %12 = icmp ult i32 %10, %11, !dbg !7321 | |
| br i1 %12, label %13, label %17, !dbg !7322 | |
| 13: ; preds = %1 | |
| %14 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7323 | |
| %15 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %14, i32 0, i32 1, !dbg !7324 | |
| %16 = load i32, i32* %15, align 4, !dbg !7324 | |
| store i32 %16, i32* %3, align 4, !dbg !7325 | |
| br label %17, !dbg !7326 | |
| 17: ; preds = %13, %1 | |
| store i32 0, i32* %4, align 4, !dbg !7327 | |
| br label %18, !dbg !7329 | |
| 18: ; preds = %37, %17 | |
| %19 = load i32, i32* %4, align 4, !dbg !7330 | |
| %20 = load i32, i32* %3, align 4, !dbg !7332 | |
| %21 = icmp ult i32 %19, %20, !dbg !7333 | |
| br i1 %21, label %22, label %40, !dbg !7334 | |
| 22: ; preds = %18 | |
| %23 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7335 | |
| %24 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %23, i32 0, i32 2, !dbg !7335 | |
| %25 = load double*, double** %24, align 8, !dbg !7335 | |
| %26 = load i32, i32* %4, align 4, !dbg !7335 | |
| %27 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7335 | |
| %28 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %27, i32 0, i32 1, !dbg !7335 | |
| %29 = load i32, i32* %28, align 4, !dbg !7335 | |
| %30 = mul i32 %26, %29, !dbg !7335 | |
| %31 = load i32, i32* %4, align 4, !dbg !7335 | |
| %32 = add i32 %30, %31, !dbg !7335 | |
| %33 = zext i32 %32 to i64, !dbg !7335 | |
| %34 = getelementptr inbounds double, double* %25, i64 %33, !dbg !7335 | |
| %35 = load double, double* %34, align 8, !dbg !7336 | |
| %36 = fsub double %35, 1.000000e+00, !dbg !7336 | |
| store double %36, double* %34, align 8, !dbg !7336 | |
| br label %37, !dbg !7335 | |
| 37: ; preds = %22 | |
| %38 = load i32, i32* %4, align 4, !dbg !7337 | |
| %39 = add i32 %38, 1, !dbg !7337 | |
| store i32 %39, i32* %4, align 4, !dbg !7337 | |
| br label %18, !dbg !7338, !llvm.loop !7339 | |
| 40: ; preds = %18 | |
| ret void, !dbg !7341 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @matrixIdentityMinus(%struct.Matrix_t* %0) #0 !dbg !7342 { | |
| %2 = alloca %struct.Matrix_t*, align 8 | |
| %3 = alloca i32, align 4 | |
| %4 = alloca i32, align 4 | |
| %5 = alloca double, align 8 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %2, metadata !7343, metadata !DIExpression()), !dbg !7344 | |
| call void @llvm.dbg.declare(metadata i32* %3, metadata !7345, metadata !DIExpression()), !dbg !7346 | |
| call void @llvm.dbg.declare(metadata i32* %4, metadata !7347, metadata !DIExpression()), !dbg !7348 | |
| store i32 0, i32* %3, align 4, !dbg !7349 | |
| br label %6, !dbg !7351 | |
| 6: ; preds = %56, %1 | |
| %7 = load i32, i32* %3, align 4, !dbg !7352 | |
| %8 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7354 | |
| %9 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %8, i32 0, i32 0, !dbg !7355 | |
| %10 = load i32, i32* %9, align 8, !dbg !7355 | |
| %11 = icmp ult i32 %7, %10, !dbg !7356 | |
| br i1 %11, label %12, label %59, !dbg !7357 | |
| 12: ; preds = %6 | |
| store i32 0, i32* %4, align 4, !dbg !7358 | |
| br label %13, !dbg !7361 | |
| 13: ; preds = %52, %12 | |
| %14 = load i32, i32* %4, align 4, !dbg !7362 | |
| %15 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7364 | |
| %16 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %15, i32 0, i32 1, !dbg !7365 | |
| %17 = load i32, i32* %16, align 4, !dbg !7365 | |
| %18 = icmp ult i32 %14, %17, !dbg !7366 | |
| br i1 %18, label %19, label %55, !dbg !7367 | |
| 19: ; preds = %13 | |
| call void @llvm.dbg.declare(metadata double* %5, metadata !7368, metadata !DIExpression()), !dbg !7370 | |
| store double 0.000000e+00, double* %5, align 8, !dbg !7370 | |
| %20 = load i32, i32* %4, align 4, !dbg !7371 | |
| %21 = load i32, i32* %3, align 4, !dbg !7373 | |
| %22 = icmp eq i32 %20, %21, !dbg !7374 | |
| br i1 %22, label %23, label %24, !dbg !7375 | |
| 23: ; preds = %19 | |
| store double 1.000000e+00, double* %5, align 8, !dbg !7376 | |
| br label %24, !dbg !7377 | |
| 24: ; preds = %23, %19 | |
| %25 = load double, double* %5, align 8, !dbg !7378 | |
| %26 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7378 | |
| %27 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %26, i32 0, i32 2, !dbg !7378 | |
| %28 = load double*, double** %27, align 8, !dbg !7378 | |
| %29 = load i32, i32* %3, align 4, !dbg !7378 | |
| %30 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7378 | |
| %31 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %30, i32 0, i32 1, !dbg !7378 | |
| %32 = load i32, i32* %31, align 4, !dbg !7378 | |
| %33 = mul i32 %29, %32, !dbg !7378 | |
| %34 = load i32, i32* %4, align 4, !dbg !7378 | |
| %35 = add i32 %33, %34, !dbg !7378 | |
| %36 = zext i32 %35 to i64, !dbg !7378 | |
| %37 = getelementptr inbounds double, double* %28, i64 %36, !dbg !7378 | |
| %38 = load double, double* %37, align 8, !dbg !7378 | |
| %39 = fsub double %25, %38, !dbg !7378 | |
| %40 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7378 | |
| %41 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %40, i32 0, i32 2, !dbg !7378 | |
| %42 = load double*, double** %41, align 8, !dbg !7378 | |
| %43 = load i32, i32* %3, align 4, !dbg !7378 | |
| %44 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7378 | |
| %45 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %44, i32 0, i32 1, !dbg !7378 | |
| %46 = load i32, i32* %45, align 4, !dbg !7378 | |
| %47 = mul i32 %43, %46, !dbg !7378 | |
| %48 = load i32, i32* %4, align 4, !dbg !7378 | |
| %49 = add i32 %47, %48, !dbg !7378 | |
| %50 = zext i32 %49 to i64, !dbg !7378 | |
| %51 = getelementptr inbounds double, double* %42, i64 %50, !dbg !7378 | |
| store double %39, double* %51, align 8, !dbg !7378 | |
| br label %52, !dbg !7379 | |
| 52: ; preds = %24 | |
| %53 = load i32, i32* %4, align 4, !dbg !7380 | |
| %54 = add i32 %53, 1, !dbg !7380 | |
| store i32 %54, i32* %4, align 4, !dbg !7380 | |
| br label %13, !dbg !7381, !llvm.loop !7382 | |
| 55: ; preds = %13 | |
| br label %56, !dbg !7384 | |
| 56: ; preds = %55 | |
| %57 = load i32, i32* %3, align 4, !dbg !7385 | |
| %58 = add i32 %57, 1, !dbg !7385 | |
| store i32 %58, i32* %3, align 4, !dbg !7385 | |
| br label %6, !dbg !7386, !llvm.loop !7387 | |
| 59: ; preds = %6 | |
| ret void, !dbg !7389 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @matrixDotRows(%struct.Matrix_t* %0, i32 %1, i32 %2) #0 !dbg !7390 { | |
| %4 = alloca %struct.Matrix_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca i32, align 4 | |
| %7 = alloca i32, align 4 | |
| %8 = alloca double, align 8 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %4, metadata !7391, metadata !DIExpression()), !dbg !7392 | |
| store i32 %1, i32* %5, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !7393, metadata !DIExpression()), !dbg !7394 | |
| store i32 %2, i32* %6, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !7395, metadata !DIExpression()), !dbg !7396 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !7397, metadata !DIExpression()), !dbg !7398 | |
| call void @llvm.dbg.declare(metadata double* %8, metadata !7399, metadata !DIExpression()), !dbg !7400 | |
| store double 0.000000e+00, double* %8, align 8, !dbg !7400 | |
| store i32 0, i32* %7, align 4, !dbg !7401 | |
| br label %9, !dbg !7403 | |
| 9: ; preds = %45, %3 | |
| %10 = load i32, i32* %7, align 4, !dbg !7404 | |
| %11 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7406 | |
| %12 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %11, i32 0, i32 1, !dbg !7407 | |
| %13 = load i32, i32* %12, align 4, !dbg !7407 | |
| %14 = icmp ult i32 %10, %13, !dbg !7408 | |
| br i1 %14, label %15, label %48, !dbg !7409 | |
| 15: ; preds = %9 | |
| %16 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7410 | |
| %17 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %16, i32 0, i32 2, !dbg !7410 | |
| %18 = load double*, double** %17, align 8, !dbg !7410 | |
| %19 = load i32, i32* %5, align 4, !dbg !7410 | |
| %20 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7410 | |
| %21 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %20, i32 0, i32 1, !dbg !7410 | |
| %22 = load i32, i32* %21, align 4, !dbg !7410 | |
| %23 = mul i32 %19, %22, !dbg !7410 | |
| %24 = load i32, i32* %7, align 4, !dbg !7410 | |
| %25 = add i32 %23, %24, !dbg !7410 | |
| %26 = zext i32 %25 to i64, !dbg !7410 | |
| %27 = getelementptr inbounds double, double* %18, i64 %26, !dbg !7410 | |
| %28 = load double, double* %27, align 8, !dbg !7410 | |
| %29 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7412 | |
| %30 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %29, i32 0, i32 2, !dbg !7412 | |
| %31 = load double*, double** %30, align 8, !dbg !7412 | |
| %32 = load i32, i32* %6, align 4, !dbg !7412 | |
| %33 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7412 | |
| %34 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %33, i32 0, i32 1, !dbg !7412 | |
| %35 = load i32, i32* %34, align 4, !dbg !7412 | |
| %36 = mul i32 %32, %35, !dbg !7412 | |
| %37 = load i32, i32* %7, align 4, !dbg !7412 | |
| %38 = add i32 %36, %37, !dbg !7412 | |
| %39 = zext i32 %38 to i64, !dbg !7412 | |
| %40 = getelementptr inbounds double, double* %31, i64 %39, !dbg !7412 | |
| %41 = load double, double* %40, align 8, !dbg !7412 | |
| %42 = fmul double %28, %41, !dbg !7413 | |
| %43 = load double, double* %8, align 8, !dbg !7414 | |
| %44 = fadd double %43, %42, !dbg !7414 | |
| store double %44, double* %8, align 8, !dbg !7414 | |
| br label %45, !dbg !7415 | |
| 45: ; preds = %15 | |
| %46 = load i32, i32* %7, align 4, !dbg !7416 | |
| %47 = add i32 %46, 1, !dbg !7416 | |
| store i32 %47, i32* %7, align 4, !dbg !7416 | |
| br label %9, !dbg !7417, !llvm.loop !7418 | |
| 48: ; preds = %9 | |
| %49 = load double, double* %8, align 8, !dbg !7420 | |
| ret double %49, !dbg !7421 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixTranspose(%struct.Matrix_t* %0, %struct.Matrix_t* %1) #0 !dbg !7422 { | |
| %3 = alloca i64, align 8 | |
| %4 = alloca %struct.Matrix_t*, align 8 | |
| %5 = alloca %struct.Matrix_t*, align 8 | |
| %6 = alloca i32, align 4 | |
| %7 = alloca i32, align 4 | |
| %8 = alloca double, align 8 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %4, metadata !7423, metadata !DIExpression()), !dbg !7424 | |
| store %struct.Matrix_t* %1, %struct.Matrix_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %5, metadata !7425, metadata !DIExpression()), !dbg !7426 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !7427, metadata !DIExpression()), !dbg !7428 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !7429, metadata !DIExpression()), !dbg !7430 | |
| %9 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7431 | |
| %10 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7433 | |
| %11 = icmp eq %struct.Matrix_t* %9, %10, !dbg !7434 | |
| br i1 %11, label %12, label %102, !dbg !7435 | |
| 12: ; preds = %2 | |
| %13 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7436 | |
| %14 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %13, i32 0, i32 0, !dbg !7437 | |
| %15 = load i32, i32* %14, align 8, !dbg !7437 | |
| %16 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7438 | |
| %17 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %16, i32 0, i32 1, !dbg !7439 | |
| %18 = load i32, i32* %17, align 4, !dbg !7439 | |
| %19 = icmp eq i32 %15, %18, !dbg !7440 | |
| br i1 %19, label %20, label %102, !dbg !7441 | |
| 20: ; preds = %12 | |
| call void @llvm.dbg.declare(metadata double* %8, metadata !7442, metadata !DIExpression()), !dbg !7444 | |
| store i32 0, i32* %6, align 4, !dbg !7445 | |
| br label %21, !dbg !7447 | |
| 21: ; preds = %98, %20 | |
| %22 = load i32, i32* %6, align 4, !dbg !7448 | |
| %23 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7450 | |
| %24 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %23, i32 0, i32 0, !dbg !7451 | |
| %25 = load i32, i32* %24, align 8, !dbg !7451 | |
| %26 = sub i32 %25, 1, !dbg !7452 | |
| %27 = icmp ult i32 %22, %26, !dbg !7453 | |
| br i1 %27, label %28, label %101, !dbg !7454 | |
| 28: ; preds = %21 | |
| %29 = load i32, i32* %6, align 4, !dbg !7455 | |
| %30 = add i32 %29, 1, !dbg !7458 | |
| store i32 %30, i32* %7, align 4, !dbg !7459 | |
| br label %31, !dbg !7460 | |
| 31: ; preds = %94, %28 | |
| %32 = load i32, i32* %7, align 4, !dbg !7461 | |
| %33 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7463 | |
| %34 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %33, i32 0, i32 1, !dbg !7464 | |
| %35 = load i32, i32* %34, align 4, !dbg !7464 | |
| %36 = icmp ult i32 %32, %35, !dbg !7465 | |
| br i1 %36, label %37, label %97, !dbg !7466 | |
| 37: ; preds = %31 | |
| %38 = load i32, i32* %6, align 4, !dbg !7467 | |
| %39 = load i32, i32* %7, align 4, !dbg !7470 | |
| %40 = icmp ne i32 %38, %39, !dbg !7471 | |
| br i1 %40, label %41, label %93, !dbg !7472 | |
| 41: ; preds = %37 | |
| %42 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7473 | |
| %43 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %42, i32 0, i32 2, !dbg !7473 | |
| %44 = load double*, double** %43, align 8, !dbg !7473 | |
| %45 = load i32, i32* %6, align 4, !dbg !7473 | |
| %46 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7473 | |
| %47 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %46, i32 0, i32 1, !dbg !7473 | |
| %48 = load i32, i32* %47, align 4, !dbg !7473 | |
| %49 = mul i32 %45, %48, !dbg !7473 | |
| %50 = load i32, i32* %7, align 4, !dbg !7473 | |
| %51 = add i32 %49, %50, !dbg !7473 | |
| %52 = zext i32 %51 to i64, !dbg !7473 | |
| %53 = getelementptr inbounds double, double* %44, i64 %52, !dbg !7473 | |
| %54 = load double, double* %53, align 8, !dbg !7473 | |
| store double %54, double* %8, align 8, !dbg !7475 | |
| %55 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7476 | |
| %56 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %55, i32 0, i32 2, !dbg !7476 | |
| %57 = load double*, double** %56, align 8, !dbg !7476 | |
| %58 = load i32, i32* %7, align 4, !dbg !7476 | |
| %59 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7476 | |
| %60 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %59, i32 0, i32 1, !dbg !7476 | |
| %61 = load i32, i32* %60, align 4, !dbg !7476 | |
| %62 = mul i32 %58, %61, !dbg !7476 | |
| %63 = load i32, i32* %6, align 4, !dbg !7476 | |
| %64 = add i32 %62, %63, !dbg !7476 | |
| %65 = zext i32 %64 to i64, !dbg !7476 | |
| %66 = getelementptr inbounds double, double* %57, i64 %65, !dbg !7476 | |
| %67 = load double, double* %66, align 8, !dbg !7476 | |
| %68 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7476 | |
| %69 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %68, i32 0, i32 2, !dbg !7476 | |
| %70 = load double*, double** %69, align 8, !dbg !7476 | |
| %71 = load i32, i32* %6, align 4, !dbg !7476 | |
| %72 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7476 | |
| %73 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %72, i32 0, i32 1, !dbg !7476 | |
| %74 = load i32, i32* %73, align 4, !dbg !7476 | |
| %75 = mul i32 %71, %74, !dbg !7476 | |
| %76 = load i32, i32* %7, align 4, !dbg !7476 | |
| %77 = add i32 %75, %76, !dbg !7476 | |
| %78 = zext i32 %77 to i64, !dbg !7476 | |
| %79 = getelementptr inbounds double, double* %70, i64 %78, !dbg !7476 | |
| store double %67, double* %79, align 8, !dbg !7476 | |
| %80 = load double, double* %8, align 8, !dbg !7477 | |
| %81 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7477 | |
| %82 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %81, i32 0, i32 2, !dbg !7477 | |
| %83 = load double*, double** %82, align 8, !dbg !7477 | |
| %84 = load i32, i32* %7, align 4, !dbg !7477 | |
| %85 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7477 | |
| %86 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %85, i32 0, i32 1, !dbg !7477 | |
| %87 = load i32, i32* %86, align 4, !dbg !7477 | |
| %88 = mul i32 %84, %87, !dbg !7477 | |
| %89 = load i32, i32* %6, align 4, !dbg !7477 | |
| %90 = add i32 %88, %89, !dbg !7477 | |
| %91 = zext i32 %90 to i64, !dbg !7477 | |
| %92 = getelementptr inbounds double, double* %83, i64 %91, !dbg !7477 | |
| store double %80, double* %92, align 8, !dbg !7477 | |
| br label %93, !dbg !7478 | |
| 93: ; preds = %41, %37 | |
| br label %94, !dbg !7479 | |
| 94: ; preds = %93 | |
| %95 = load i32, i32* %7, align 4, !dbg !7480 | |
| %96 = add i32 %95, 1, !dbg !7480 | |
| store i32 %96, i32* %7, align 4, !dbg !7480 | |
| br label %31, !dbg !7481, !llvm.loop !7482 | |
| 97: ; preds = %31 | |
| br label %98, !dbg !7484 | |
| 98: ; preds = %97 | |
| %99 = load i32, i32* %6, align 4, !dbg !7485 | |
| %100 = add i32 %99, 1, !dbg !7485 | |
| store i32 %100, i32* %6, align 4, !dbg !7485 | |
| br label %21, !dbg !7486, !llvm.loop !7487 | |
| 101: ; preds = %21 | |
| store i64 1, i64* %3, align 8, !dbg !7489 | |
| br label %167, !dbg !7489 | |
| 102: ; preds = %12, %2 | |
| %103 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7490 | |
| %104 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %103, i32 0, i32 0, !dbg !7492 | |
| %105 = load i32, i32* %104, align 8, !dbg !7492 | |
| %106 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7493 | |
| %107 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %106, i32 0, i32 1, !dbg !7494 | |
| %108 = load i32, i32* %107, align 4, !dbg !7494 | |
| %109 = icmp eq i32 %105, %108, !dbg !7495 | |
| br i1 %109, label %110, label %166, !dbg !7496 | |
| 110: ; preds = %102 | |
| %111 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7497 | |
| %112 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %111, i32 0, i32 1, !dbg !7498 | |
| %113 = load i32, i32* %112, align 4, !dbg !7498 | |
| %114 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7499 | |
| %115 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %114, i32 0, i32 0, !dbg !7500 | |
| %116 = load i32, i32* %115, align 8, !dbg !7500 | |
| %117 = icmp eq i32 %113, %116, !dbg !7501 | |
| br i1 %117, label %118, label %166, !dbg !7502 | |
| 118: ; preds = %110 | |
| store i32 0, i32* %6, align 4, !dbg !7503 | |
| br label %119, !dbg !7506 | |
| 119: ; preds = %162, %118 | |
| %120 = load i32, i32* %6, align 4, !dbg !7507 | |
| %121 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7509 | |
| %122 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %121, i32 0, i32 0, !dbg !7510 | |
| %123 = load i32, i32* %122, align 8, !dbg !7510 | |
| %124 = icmp ult i32 %120, %123, !dbg !7511 | |
| br i1 %124, label %125, label %165, !dbg !7512 | |
| 125: ; preds = %119 | |
| store i32 0, i32* %7, align 4, !dbg !7513 | |
| br label %126, !dbg !7516 | |
| 126: ; preds = %158, %125 | |
| %127 = load i32, i32* %7, align 4, !dbg !7517 | |
| %128 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7519 | |
| %129 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %128, i32 0, i32 1, !dbg !7520 | |
| %130 = load i32, i32* %129, align 4, !dbg !7520 | |
| %131 = icmp ult i32 %127, %130, !dbg !7521 | |
| br i1 %131, label %132, label %161, !dbg !7522 | |
| 132: ; preds = %126 | |
| %133 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7523 | |
| %134 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %133, i32 0, i32 2, !dbg !7523 | |
| %135 = load double*, double** %134, align 8, !dbg !7523 | |
| %136 = load i32, i32* %6, align 4, !dbg !7523 | |
| %137 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7523 | |
| %138 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %137, i32 0, i32 1, !dbg !7523 | |
| %139 = load i32, i32* %138, align 4, !dbg !7523 | |
| %140 = mul i32 %136, %139, !dbg !7523 | |
| %141 = load i32, i32* %7, align 4, !dbg !7523 | |
| %142 = add i32 %140, %141, !dbg !7523 | |
| %143 = zext i32 %142 to i64, !dbg !7523 | |
| %144 = getelementptr inbounds double, double* %135, i64 %143, !dbg !7523 | |
| %145 = load double, double* %144, align 8, !dbg !7523 | |
| %146 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7523 | |
| %147 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %146, i32 0, i32 2, !dbg !7523 | |
| %148 = load double*, double** %147, align 8, !dbg !7523 | |
| %149 = load i32, i32* %7, align 4, !dbg !7523 | |
| %150 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7523 | |
| %151 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %150, i32 0, i32 1, !dbg !7523 | |
| %152 = load i32, i32* %151, align 4, !dbg !7523 | |
| %153 = mul i32 %149, %152, !dbg !7523 | |
| %154 = load i32, i32* %6, align 4, !dbg !7523 | |
| %155 = add i32 %153, %154, !dbg !7523 | |
| %156 = zext i32 %155 to i64, !dbg !7523 | |
| %157 = getelementptr inbounds double, double* %148, i64 %156, !dbg !7523 | |
| store double %145, double* %157, align 8, !dbg !7523 | |
| br label %158, !dbg !7525 | |
| 158: ; preds = %132 | |
| %159 = load i32, i32* %7, align 4, !dbg !7526 | |
| %160 = add i32 %159, 1, !dbg !7526 | |
| store i32 %160, i32* %7, align 4, !dbg !7526 | |
| br label %126, !dbg !7527, !llvm.loop !7528 | |
| 161: ; preds = %126 | |
| br label %162, !dbg !7530 | |
| 162: ; preds = %161 | |
| %163 = load i32, i32* %6, align 4, !dbg !7531 | |
| %164 = add i32 %163, 1, !dbg !7531 | |
| store i32 %164, i32* %6, align 4, !dbg !7531 | |
| br label %119, !dbg !7532, !llvm.loop !7533 | |
| 165: ; preds = %119 | |
| store i64 1, i64* %3, align 8, !dbg !7535 | |
| br label %167, !dbg !7535 | |
| 166: ; preds = %110, %102 | |
| store i64 0, i64* %3, align 8, !dbg !7536 | |
| br label %167, !dbg !7536 | |
| 167: ; preds = %166, %165, %101 | |
| %168 = load i64, i64* %3, align 8, !dbg !7537 | |
| ret i64 %168, !dbg !7537 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixInverse(%struct.Matrix_t* %0, %struct.Matrix_t* %1) #0 !dbg !7538 { | |
| %3 = alloca i64, align 8 | |
| %4 = alloca %struct.Matrix_t*, align 8 | |
| %5 = alloca %struct.Matrix_t*, align 8 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %4, metadata !7539, metadata !DIExpression()), !dbg !7540 | |
| store %struct.Matrix_t* %1, %struct.Matrix_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %5, metadata !7541, metadata !DIExpression()), !dbg !7542 | |
| %6 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7543 | |
| %7 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %6, i32 0, i32 0, !dbg !7545 | |
| %8 = load i32, i32* %7, align 8, !dbg !7545 | |
| %9 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7546 | |
| %10 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %9, i32 0, i32 1, !dbg !7547 | |
| %11 = load i32, i32* %10, align 4, !dbg !7547 | |
| %12 = icmp ne i32 %8, %11, !dbg !7548 | |
| br i1 %12, label %29, label %13, !dbg !7549 | |
| 13: ; preds = %2 | |
| %14 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7550 | |
| %15 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %14, i32 0, i32 0, !dbg !7551 | |
| %16 = load i32, i32* %15, align 8, !dbg !7551 | |
| %17 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7552 | |
| %18 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %17, i32 0, i32 1, !dbg !7553 | |
| %19 = load i32, i32* %18, align 4, !dbg !7553 | |
| %20 = icmp ne i32 %16, %19, !dbg !7554 | |
| br i1 %20, label %29, label %21, !dbg !7555 | |
| 21: ; preds = %13 | |
| %22 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7556 | |
| %23 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %22, i32 0, i32 0, !dbg !7557 | |
| %24 = load i32, i32* %23, align 8, !dbg !7557 | |
| %25 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7558 | |
| %26 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %25, i32 0, i32 0, !dbg !7559 | |
| %27 = load i32, i32* %26, align 8, !dbg !7559 | |
| %28 = icmp ne i32 %24, %27, !dbg !7560 | |
| br i1 %28, label %29, label %30, !dbg !7561 | |
| 29: ; preds = %21, %13, %2 | |
| store i64 0, i64* %3, align 8, !dbg !7562 | |
| br label %62, !dbg !7562 | |
| 30: ; preds = %21 | |
| %31 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7563 | |
| %32 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %31, i32 0, i32 0, !dbg !7564 | |
| %33 = load i32, i32* %32, align 8, !dbg !7564 | |
| switch i32 %33, label %61 [ | |
| i32 1, label %34 | |
| i32 2, label %53 | |
| i32 3, label %57 | |
| ], !dbg !7565 | |
| 34: ; preds = %30 | |
| %35 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7566 | |
| %36 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %35, i32 0, i32 2, !dbg !7569 | |
| %37 = load double*, double** %36, align 8, !dbg !7569 | |
| %38 = getelementptr inbounds double, double* %37, i64 0, !dbg !7566 | |
| %39 = load double, double* %38, align 8, !dbg !7566 | |
| %40 = fcmp une double %39, 0.000000e+00, !dbg !7570 | |
| br i1 %40, label %41, label %52, !dbg !7571 | |
| 41: ; preds = %34 | |
| %42 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7572 | |
| %43 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %42, i32 0, i32 2, !dbg !7574 | |
| %44 = load double*, double** %43, align 8, !dbg !7574 | |
| %45 = getelementptr inbounds double, double* %44, i64 0, !dbg !7572 | |
| %46 = load double, double* %45, align 8, !dbg !7572 | |
| %47 = fdiv double 1.000000e+00, %46, !dbg !7575 | |
| %48 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7576 | |
| %49 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %48, i32 0, i32 2, !dbg !7577 | |
| %50 = load double*, double** %49, align 8, !dbg !7577 | |
| %51 = getelementptr inbounds double, double* %50, i64 0, !dbg !7576 | |
| store double %47, double* %51, align 8, !dbg !7578 | |
| store i64 1, i64* %3, align 8, !dbg !7579 | |
| br label %62, !dbg !7579 | |
| 52: ; preds = %34 | |
| store i64 0, i64* %3, align 8, !dbg !7580 | |
| br label %62, !dbg !7580 | |
| 53: ; preds = %30 | |
| %54 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7581 | |
| %55 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7582 | |
| %56 = call i64 @matrixInverse2x2(%struct.Matrix_t* %54, %struct.Matrix_t* %55), !dbg !7583 | |
| store i64 %56, i64* %3, align 8, !dbg !7584 | |
| br label %62, !dbg !7584 | |
| 57: ; preds = %30 | |
| %58 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7585 | |
| %59 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7586 | |
| %60 = call i64 @matrixInverse3x3(%struct.Matrix_t* %58, %struct.Matrix_t* %59), !dbg !7587 | |
| store i64 %60, i64* %3, align 8, !dbg !7588 | |
| br label %62, !dbg !7588 | |
| 61: ; preds = %30 | |
| store i64 0, i64* %3, align 8, !dbg !7589 | |
| br label %62, !dbg !7589 | |
| 62: ; preds = %61, %57, %53, %52, %41, %29 | |
| %63 = load i64, i64* %3, align 8, !dbg !7590 | |
| ret i64 %63, !dbg !7590 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define internal i64 @matrixInverse2x2(%struct.Matrix_t* %0, %struct.Matrix_t* %1) #0 !dbg !7591 { | |
| %3 = alloca i64, align 8 | |
| %4 = alloca %struct.Matrix_t*, align 8 | |
| %5 = alloca %struct.Matrix_t*, align 8 | |
| %6 = alloca double, align 8 | |
| %7 = alloca double, align 8 | |
| %8 = alloca double, align 8 | |
| %9 = alloca double, align 8 | |
| %10 = alloca double, align 8 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %4, metadata !7592, metadata !DIExpression()), !dbg !7593 | |
| store %struct.Matrix_t* %1, %struct.Matrix_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %5, metadata !7594, metadata !DIExpression()), !dbg !7595 | |
| call void @llvm.dbg.declare(metadata double* %6, metadata !7596, metadata !DIExpression()), !dbg !7597 | |
| %11 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7598 | |
| %12 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %11, i32 0, i32 2, !dbg !7598 | |
| %13 = load double*, double** %12, align 8, !dbg !7598 | |
| %14 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7598 | |
| %15 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %14, i32 0, i32 1, !dbg !7598 | |
| %16 = load i32, i32* %15, align 4, !dbg !7598 | |
| %17 = mul i32 0, %16, !dbg !7598 | |
| %18 = add i32 %17, 0, !dbg !7598 | |
| %19 = zext i32 %18 to i64, !dbg !7598 | |
| %20 = getelementptr inbounds double, double* %13, i64 %19, !dbg !7598 | |
| %21 = load double, double* %20, align 8, !dbg !7598 | |
| store double %21, double* %6, align 8, !dbg !7597 | |
| call void @llvm.dbg.declare(metadata double* %7, metadata !7599, metadata !DIExpression()), !dbg !7600 | |
| %22 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7601 | |
| %23 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %22, i32 0, i32 2, !dbg !7601 | |
| %24 = load double*, double** %23, align 8, !dbg !7601 | |
| %25 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7601 | |
| %26 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %25, i32 0, i32 1, !dbg !7601 | |
| %27 = load i32, i32* %26, align 4, !dbg !7601 | |
| %28 = mul i32 0, %27, !dbg !7601 | |
| %29 = add i32 %28, 1, !dbg !7601 | |
| %30 = zext i32 %29 to i64, !dbg !7601 | |
| %31 = getelementptr inbounds double, double* %24, i64 %30, !dbg !7601 | |
| %32 = load double, double* %31, align 8, !dbg !7601 | |
| store double %32, double* %7, align 8, !dbg !7600 | |
| call void @llvm.dbg.declare(metadata double* %8, metadata !7602, metadata !DIExpression()), !dbg !7603 | |
| %33 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7604 | |
| %34 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %33, i32 0, i32 2, !dbg !7604 | |
| %35 = load double*, double** %34, align 8, !dbg !7604 | |
| %36 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7604 | |
| %37 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %36, i32 0, i32 1, !dbg !7604 | |
| %38 = load i32, i32* %37, align 4, !dbg !7604 | |
| %39 = mul i32 1, %38, !dbg !7604 | |
| %40 = add i32 %39, 0, !dbg !7604 | |
| %41 = zext i32 %40 to i64, !dbg !7604 | |
| %42 = getelementptr inbounds double, double* %35, i64 %41, !dbg !7604 | |
| %43 = load double, double* %42, align 8, !dbg !7604 | |
| store double %43, double* %8, align 8, !dbg !7603 | |
| call void @llvm.dbg.declare(metadata double* %9, metadata !7605, metadata !DIExpression()), !dbg !7606 | |
| %44 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7607 | |
| %45 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %44, i32 0, i32 2, !dbg !7607 | |
| %46 = load double*, double** %45, align 8, !dbg !7607 | |
| %47 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7607 | |
| %48 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %47, i32 0, i32 1, !dbg !7607 | |
| %49 = load i32, i32* %48, align 4, !dbg !7607 | |
| %50 = mul i32 1, %49, !dbg !7607 | |
| %51 = add i32 %50, 1, !dbg !7607 | |
| %52 = zext i32 %51 to i64, !dbg !7607 | |
| %53 = getelementptr inbounds double, double* %46, i64 %52, !dbg !7607 | |
| %54 = load double, double* %53, align 8, !dbg !7607 | |
| store double %54, double* %9, align 8, !dbg !7606 | |
| call void @llvm.dbg.declare(metadata double* %10, metadata !7608, metadata !DIExpression()), !dbg !7609 | |
| %55 = load double, double* %6, align 8, !dbg !7610 | |
| %56 = load double, double* %9, align 8, !dbg !7611 | |
| %57 = fmul double %55, %56, !dbg !7612 | |
| %58 = load double, double* %7, align 8, !dbg !7613 | |
| %59 = load double, double* %8, align 8, !dbg !7614 | |
| %60 = fmul double %58, %59, !dbg !7615 | |
| %61 = fsub double %57, %60, !dbg !7616 | |
| store double %61, double* %10, align 8, !dbg !7609 | |
| %62 = load double, double* %10, align 8, !dbg !7617 | |
| %63 = fcmp une double %62, 0.000000e+00, !dbg !7619 | |
| br i1 %63, label %64, label %121, !dbg !7620 | |
| 64: ; preds = %2 | |
| %65 = load double, double* %10, align 8, !dbg !7621 | |
| %66 = fdiv double 1.000000e+00, %65, !dbg !7623 | |
| store double %66, double* %10, align 8, !dbg !7624 | |
| %67 = load double, double* %10, align 8, !dbg !7625 | |
| %68 = load double, double* %9, align 8, !dbg !7625 | |
| %69 = fmul double %67, %68, !dbg !7625 | |
| %70 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7625 | |
| %71 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %70, i32 0, i32 2, !dbg !7625 | |
| %72 = load double*, double** %71, align 8, !dbg !7625 | |
| %73 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7625 | |
| %74 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %73, i32 0, i32 1, !dbg !7625 | |
| %75 = load i32, i32* %74, align 4, !dbg !7625 | |
| %76 = mul i32 0, %75, !dbg !7625 | |
| %77 = add i32 %76, 0, !dbg !7625 | |
| %78 = zext i32 %77 to i64, !dbg !7625 | |
| %79 = getelementptr inbounds double, double* %72, i64 %78, !dbg !7625 | |
| store double %69, double* %79, align 8, !dbg !7625 | |
| %80 = load double, double* %10, align 8, !dbg !7626 | |
| %81 = fneg double %80, !dbg !7626 | |
| %82 = load double, double* %7, align 8, !dbg !7626 | |
| %83 = fmul double %81, %82, !dbg !7626 | |
| %84 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7626 | |
| %85 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %84, i32 0, i32 2, !dbg !7626 | |
| %86 = load double*, double** %85, align 8, !dbg !7626 | |
| %87 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7626 | |
| %88 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %87, i32 0, i32 1, !dbg !7626 | |
| %89 = load i32, i32* %88, align 4, !dbg !7626 | |
| %90 = mul i32 0, %89, !dbg !7626 | |
| %91 = add i32 %90, 1, !dbg !7626 | |
| %92 = zext i32 %91 to i64, !dbg !7626 | |
| %93 = getelementptr inbounds double, double* %86, i64 %92, !dbg !7626 | |
| store double %83, double* %93, align 8, !dbg !7626 | |
| %94 = load double, double* %10, align 8, !dbg !7627 | |
| %95 = fneg double %94, !dbg !7627 | |
| %96 = load double, double* %8, align 8, !dbg !7627 | |
| %97 = fmul double %95, %96, !dbg !7627 | |
| %98 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7627 | |
| %99 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %98, i32 0, i32 2, !dbg !7627 | |
| %100 = load double*, double** %99, align 8, !dbg !7627 | |
| %101 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7627 | |
| %102 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %101, i32 0, i32 1, !dbg !7627 | |
| %103 = load i32, i32* %102, align 4, !dbg !7627 | |
| %104 = mul i32 1, %103, !dbg !7627 | |
| %105 = add i32 %104, 0, !dbg !7627 | |
| %106 = zext i32 %105 to i64, !dbg !7627 | |
| %107 = getelementptr inbounds double, double* %100, i64 %106, !dbg !7627 | |
| store double %97, double* %107, align 8, !dbg !7627 | |
| %108 = load double, double* %10, align 8, !dbg !7628 | |
| %109 = load double, double* %6, align 8, !dbg !7628 | |
| %110 = fmul double %108, %109, !dbg !7628 | |
| %111 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7628 | |
| %112 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %111, i32 0, i32 2, !dbg !7628 | |
| %113 = load double*, double** %112, align 8, !dbg !7628 | |
| %114 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7628 | |
| %115 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %114, i32 0, i32 1, !dbg !7628 | |
| %116 = load i32, i32* %115, align 4, !dbg !7628 | |
| %117 = mul i32 1, %116, !dbg !7628 | |
| %118 = add i32 %117, 1, !dbg !7628 | |
| %119 = zext i32 %118 to i64, !dbg !7628 | |
| %120 = getelementptr inbounds double, double* %113, i64 %119, !dbg !7628 | |
| store double %110, double* %120, align 8, !dbg !7628 | |
| store i64 1, i64* %3, align 8, !dbg !7629 | |
| br label %122, !dbg !7629 | |
| 121: ; preds = %2 | |
| store i64 0, i64* %3, align 8, !dbg !7630 | |
| br label %122, !dbg !7630 | |
| 122: ; preds = %121, %64 | |
| %123 = load i64, i64* %3, align 8, !dbg !7631 | |
| ret i64 %123, !dbg !7631 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define internal i64 @matrixInverse3x3(%struct.Matrix_t* %0, %struct.Matrix_t* %1) #0 !dbg !7632 { | |
| %3 = alloca i64, align 8 | |
| %4 = alloca %struct.Matrix_t*, align 8 | |
| %5 = alloca %struct.Matrix_t*, align 8 | |
| %6 = alloca double, align 8 | |
| %7 = alloca double, align 8 | |
| %8 = alloca double, align 8 | |
| %9 = alloca double, align 8 | |
| %10 = alloca double, align 8 | |
| %11 = alloca double, align 8 | |
| %12 = alloca double, align 8 | |
| %13 = alloca double, align 8 | |
| %14 = alloca double, align 8 | |
| %15 = alloca double, align 8 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %4, metadata !7633, metadata !DIExpression()), !dbg !7634 | |
| store %struct.Matrix_t* %1, %struct.Matrix_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %5, metadata !7635, metadata !DIExpression()), !dbg !7636 | |
| call void @llvm.dbg.declare(metadata double* %6, metadata !7637, metadata !DIExpression()), !dbg !7638 | |
| %16 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7639 | |
| %17 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %16, i32 0, i32 2, !dbg !7639 | |
| %18 = load double*, double** %17, align 8, !dbg !7639 | |
| %19 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7639 | |
| %20 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %19, i32 0, i32 1, !dbg !7639 | |
| %21 = load i32, i32* %20, align 4, !dbg !7639 | |
| %22 = mul i32 0, %21, !dbg !7639 | |
| %23 = add i32 %22, 0, !dbg !7639 | |
| %24 = zext i32 %23 to i64, !dbg !7639 | |
| %25 = getelementptr inbounds double, double* %18, i64 %24, !dbg !7639 | |
| %26 = load double, double* %25, align 8, !dbg !7639 | |
| store double %26, double* %6, align 8, !dbg !7638 | |
| call void @llvm.dbg.declare(metadata double* %7, metadata !7640, metadata !DIExpression()), !dbg !7641 | |
| %27 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7642 | |
| %28 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %27, i32 0, i32 2, !dbg !7642 | |
| %29 = load double*, double** %28, align 8, !dbg !7642 | |
| %30 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7642 | |
| %31 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %30, i32 0, i32 1, !dbg !7642 | |
| %32 = load i32, i32* %31, align 4, !dbg !7642 | |
| %33 = mul i32 0, %32, !dbg !7642 | |
| %34 = add i32 %33, 1, !dbg !7642 | |
| %35 = zext i32 %34 to i64, !dbg !7642 | |
| %36 = getelementptr inbounds double, double* %29, i64 %35, !dbg !7642 | |
| %37 = load double, double* %36, align 8, !dbg !7642 | |
| store double %37, double* %7, align 8, !dbg !7641 | |
| call void @llvm.dbg.declare(metadata double* %8, metadata !7643, metadata !DIExpression()), !dbg !7644 | |
| %38 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7645 | |
| %39 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %38, i32 0, i32 2, !dbg !7645 | |
| %40 = load double*, double** %39, align 8, !dbg !7645 | |
| %41 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7645 | |
| %42 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %41, i32 0, i32 1, !dbg !7645 | |
| %43 = load i32, i32* %42, align 4, !dbg !7645 | |
| %44 = mul i32 0, %43, !dbg !7645 | |
| %45 = add i32 %44, 2, !dbg !7645 | |
| %46 = zext i32 %45 to i64, !dbg !7645 | |
| %47 = getelementptr inbounds double, double* %40, i64 %46, !dbg !7645 | |
| %48 = load double, double* %47, align 8, !dbg !7645 | |
| store double %48, double* %8, align 8, !dbg !7644 | |
| call void @llvm.dbg.declare(metadata double* %9, metadata !7646, metadata !DIExpression()), !dbg !7647 | |
| %49 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7648 | |
| %50 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %49, i32 0, i32 2, !dbg !7648 | |
| %51 = load double*, double** %50, align 8, !dbg !7648 | |
| %52 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7648 | |
| %53 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %52, i32 0, i32 1, !dbg !7648 | |
| %54 = load i32, i32* %53, align 4, !dbg !7648 | |
| %55 = mul i32 1, %54, !dbg !7648 | |
| %56 = add i32 %55, 0, !dbg !7648 | |
| %57 = zext i32 %56 to i64, !dbg !7648 | |
| %58 = getelementptr inbounds double, double* %51, i64 %57, !dbg !7648 | |
| %59 = load double, double* %58, align 8, !dbg !7648 | |
| store double %59, double* %9, align 8, !dbg !7647 | |
| call void @llvm.dbg.declare(metadata double* %10, metadata !7649, metadata !DIExpression()), !dbg !7650 | |
| %60 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7651 | |
| %61 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %60, i32 0, i32 2, !dbg !7651 | |
| %62 = load double*, double** %61, align 8, !dbg !7651 | |
| %63 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7651 | |
| %64 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %63, i32 0, i32 1, !dbg !7651 | |
| %65 = load i32, i32* %64, align 4, !dbg !7651 | |
| %66 = mul i32 1, %65, !dbg !7651 | |
| %67 = add i32 %66, 1, !dbg !7651 | |
| %68 = zext i32 %67 to i64, !dbg !7651 | |
| %69 = getelementptr inbounds double, double* %62, i64 %68, !dbg !7651 | |
| %70 = load double, double* %69, align 8, !dbg !7651 | |
| store double %70, double* %10, align 8, !dbg !7650 | |
| call void @llvm.dbg.declare(metadata double* %11, metadata !7652, metadata !DIExpression()), !dbg !7653 | |
| %71 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7654 | |
| %72 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %71, i32 0, i32 2, !dbg !7654 | |
| %73 = load double*, double** %72, align 8, !dbg !7654 | |
| %74 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7654 | |
| %75 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %74, i32 0, i32 1, !dbg !7654 | |
| %76 = load i32, i32* %75, align 4, !dbg !7654 | |
| %77 = mul i32 1, %76, !dbg !7654 | |
| %78 = add i32 %77, 2, !dbg !7654 | |
| %79 = zext i32 %78 to i64, !dbg !7654 | |
| %80 = getelementptr inbounds double, double* %73, i64 %79, !dbg !7654 | |
| %81 = load double, double* %80, align 8, !dbg !7654 | |
| store double %81, double* %11, align 8, !dbg !7653 | |
| call void @llvm.dbg.declare(metadata double* %12, metadata !7655, metadata !DIExpression()), !dbg !7656 | |
| %82 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7657 | |
| %83 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %82, i32 0, i32 2, !dbg !7657 | |
| %84 = load double*, double** %83, align 8, !dbg !7657 | |
| %85 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7657 | |
| %86 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %85, i32 0, i32 1, !dbg !7657 | |
| %87 = load i32, i32* %86, align 4, !dbg !7657 | |
| %88 = mul i32 2, %87, !dbg !7657 | |
| %89 = add i32 %88, 0, !dbg !7657 | |
| %90 = zext i32 %89 to i64, !dbg !7657 | |
| %91 = getelementptr inbounds double, double* %84, i64 %90, !dbg !7657 | |
| %92 = load double, double* %91, align 8, !dbg !7657 | |
| store double %92, double* %12, align 8, !dbg !7656 | |
| call void @llvm.dbg.declare(metadata double* %13, metadata !7658, metadata !DIExpression()), !dbg !7659 | |
| %93 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7660 | |
| %94 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %93, i32 0, i32 2, !dbg !7660 | |
| %95 = load double*, double** %94, align 8, !dbg !7660 | |
| %96 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7660 | |
| %97 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %96, i32 0, i32 1, !dbg !7660 | |
| %98 = load i32, i32* %97, align 4, !dbg !7660 | |
| %99 = mul i32 2, %98, !dbg !7660 | |
| %100 = add i32 %99, 1, !dbg !7660 | |
| %101 = zext i32 %100 to i64, !dbg !7660 | |
| %102 = getelementptr inbounds double, double* %95, i64 %101, !dbg !7660 | |
| %103 = load double, double* %102, align 8, !dbg !7660 | |
| store double %103, double* %13, align 8, !dbg !7659 | |
| call void @llvm.dbg.declare(metadata double* %14, metadata !7661, metadata !DIExpression()), !dbg !7662 | |
| %104 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7663 | |
| %105 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %104, i32 0, i32 2, !dbg !7663 | |
| %106 = load double*, double** %105, align 8, !dbg !7663 | |
| %107 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !7663 | |
| %108 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %107, i32 0, i32 1, !dbg !7663 | |
| %109 = load i32, i32* %108, align 4, !dbg !7663 | |
| %110 = mul i32 2, %109, !dbg !7663 | |
| %111 = add i32 %110, 2, !dbg !7663 | |
| %112 = zext i32 %111 to i64, !dbg !7663 | |
| %113 = getelementptr inbounds double, double* %106, i64 %112, !dbg !7663 | |
| %114 = load double, double* %113, align 8, !dbg !7663 | |
| store double %114, double* %14, align 8, !dbg !7662 | |
| call void @llvm.dbg.declare(metadata double* %15, metadata !7664, metadata !DIExpression()), !dbg !7665 | |
| %115 = load double, double* %6, align 8, !dbg !7666 | |
| %116 = load double, double* %10, align 8, !dbg !7667 | |
| %117 = fmul double %115, %116, !dbg !7668 | |
| %118 = load double, double* %14, align 8, !dbg !7669 | |
| %119 = fmul double %117, %118, !dbg !7670 | |
| %120 = load double, double* %9, align 8, !dbg !7671 | |
| %121 = load double, double* %13, align 8, !dbg !7672 | |
| %122 = fmul double %120, %121, !dbg !7673 | |
| %123 = load double, double* %8, align 8, !dbg !7674 | |
| %124 = fmul double %122, %123, !dbg !7675 | |
| %125 = fadd double %119, %124, !dbg !7676 | |
| %126 = load double, double* %12, align 8, !dbg !7677 | |
| %127 = load double, double* %7, align 8, !dbg !7678 | |
| %128 = fmul double %126, %127, !dbg !7679 | |
| %129 = load double, double* %11, align 8, !dbg !7680 | |
| %130 = fmul double %128, %129, !dbg !7681 | |
| %131 = fadd double %125, %130, !dbg !7682 | |
| %132 = load double, double* %6, align 8, !dbg !7683 | |
| %133 = load double, double* %13, align 8, !dbg !7684 | |
| %134 = fmul double %132, %133, !dbg !7685 | |
| %135 = load double, double* %11, align 8, !dbg !7686 | |
| %136 = fmul double %134, %135, !dbg !7687 | |
| %137 = fsub double %131, %136, !dbg !7688 | |
| %138 = load double, double* %12, align 8, !dbg !7689 | |
| %139 = load double, double* %10, align 8, !dbg !7690 | |
| %140 = fmul double %138, %139, !dbg !7691 | |
| %141 = load double, double* %8, align 8, !dbg !7692 | |
| %142 = fmul double %140, %141, !dbg !7693 | |
| %143 = fsub double %137, %142, !dbg !7694 | |
| %144 = load double, double* %9, align 8, !dbg !7695 | |
| %145 = load double, double* %7, align 8, !dbg !7696 | |
| %146 = fmul double %144, %145, !dbg !7697 | |
| %147 = load double, double* %14, align 8, !dbg !7698 | |
| %148 = fmul double %146, %147, !dbg !7699 | |
| %149 = fsub double %143, %148, !dbg !7700 | |
| store double %149, double* %15, align 8, !dbg !7665 | |
| %150 = load double, double* %15, align 8, !dbg !7701 | |
| %151 = fcmp une double %150, 0.000000e+00, !dbg !7703 | |
| br i1 %151, label %152, label %326, !dbg !7704 | |
| 152: ; preds = %2 | |
| %153 = load double, double* %15, align 8, !dbg !7705 | |
| %154 = fdiv double 1.000000e+00, %153, !dbg !7707 | |
| store double %154, double* %15, align 8, !dbg !7708 | |
| %155 = load double, double* %15, align 8, !dbg !7709 | |
| %156 = load double, double* %10, align 8, !dbg !7709 | |
| %157 = load double, double* %14, align 8, !dbg !7709 | |
| %158 = fmul double %156, %157, !dbg !7709 | |
| %159 = load double, double* %11, align 8, !dbg !7709 | |
| %160 = load double, double* %13, align 8, !dbg !7709 | |
| %161 = fmul double %159, %160, !dbg !7709 | |
| %162 = fsub double %158, %161, !dbg !7709 | |
| %163 = fmul double %155, %162, !dbg !7709 | |
| %164 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7709 | |
| %165 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %164, i32 0, i32 2, !dbg !7709 | |
| %166 = load double*, double** %165, align 8, !dbg !7709 | |
| %167 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7709 | |
| %168 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %167, i32 0, i32 1, !dbg !7709 | |
| %169 = load i32, i32* %168, align 4, !dbg !7709 | |
| %170 = mul i32 0, %169, !dbg !7709 | |
| %171 = add i32 %170, 0, !dbg !7709 | |
| %172 = zext i32 %171 to i64, !dbg !7709 | |
| %173 = getelementptr inbounds double, double* %166, i64 %172, !dbg !7709 | |
| store double %163, double* %173, align 8, !dbg !7709 | |
| %174 = load double, double* %15, align 8, !dbg !7710 | |
| %175 = load double, double* %8, align 8, !dbg !7710 | |
| %176 = load double, double* %13, align 8, !dbg !7710 | |
| %177 = fmul double %175, %176, !dbg !7710 | |
| %178 = load double, double* %7, align 8, !dbg !7710 | |
| %179 = load double, double* %14, align 8, !dbg !7710 | |
| %180 = fmul double %178, %179, !dbg !7710 | |
| %181 = fsub double %177, %180, !dbg !7710 | |
| %182 = fmul double %174, %181, !dbg !7710 | |
| %183 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7710 | |
| %184 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %183, i32 0, i32 2, !dbg !7710 | |
| %185 = load double*, double** %184, align 8, !dbg !7710 | |
| %186 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7710 | |
| %187 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %186, i32 0, i32 1, !dbg !7710 | |
| %188 = load i32, i32* %187, align 4, !dbg !7710 | |
| %189 = mul i32 0, %188, !dbg !7710 | |
| %190 = add i32 %189, 1, !dbg !7710 | |
| %191 = zext i32 %190 to i64, !dbg !7710 | |
| %192 = getelementptr inbounds double, double* %185, i64 %191, !dbg !7710 | |
| store double %182, double* %192, align 8, !dbg !7710 | |
| %193 = load double, double* %15, align 8, !dbg !7711 | |
| %194 = load double, double* %7, align 8, !dbg !7711 | |
| %195 = load double, double* %11, align 8, !dbg !7711 | |
| %196 = fmul double %194, %195, !dbg !7711 | |
| %197 = load double, double* %8, align 8, !dbg !7711 | |
| %198 = load double, double* %10, align 8, !dbg !7711 | |
| %199 = fmul double %197, %198, !dbg !7711 | |
| %200 = fsub double %196, %199, !dbg !7711 | |
| %201 = fmul double %193, %200, !dbg !7711 | |
| %202 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7711 | |
| %203 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %202, i32 0, i32 2, !dbg !7711 | |
| %204 = load double*, double** %203, align 8, !dbg !7711 | |
| %205 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7711 | |
| %206 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %205, i32 0, i32 1, !dbg !7711 | |
| %207 = load i32, i32* %206, align 4, !dbg !7711 | |
| %208 = mul i32 0, %207, !dbg !7711 | |
| %209 = add i32 %208, 2, !dbg !7711 | |
| %210 = zext i32 %209 to i64, !dbg !7711 | |
| %211 = getelementptr inbounds double, double* %204, i64 %210, !dbg !7711 | |
| store double %201, double* %211, align 8, !dbg !7711 | |
| %212 = load double, double* %15, align 8, !dbg !7712 | |
| %213 = load double, double* %11, align 8, !dbg !7712 | |
| %214 = load double, double* %12, align 8, !dbg !7712 | |
| %215 = fmul double %213, %214, !dbg !7712 | |
| %216 = load double, double* %9, align 8, !dbg !7712 | |
| %217 = load double, double* %14, align 8, !dbg !7712 | |
| %218 = fmul double %216, %217, !dbg !7712 | |
| %219 = fsub double %215, %218, !dbg !7712 | |
| %220 = fmul double %212, %219, !dbg !7712 | |
| %221 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7712 | |
| %222 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %221, i32 0, i32 2, !dbg !7712 | |
| %223 = load double*, double** %222, align 8, !dbg !7712 | |
| %224 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7712 | |
| %225 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %224, i32 0, i32 1, !dbg !7712 | |
| %226 = load i32, i32* %225, align 4, !dbg !7712 | |
| %227 = mul i32 1, %226, !dbg !7712 | |
| %228 = add i32 %227, 0, !dbg !7712 | |
| %229 = zext i32 %228 to i64, !dbg !7712 | |
| %230 = getelementptr inbounds double, double* %223, i64 %229, !dbg !7712 | |
| store double %220, double* %230, align 8, !dbg !7712 | |
| %231 = load double, double* %15, align 8, !dbg !7713 | |
| %232 = load double, double* %6, align 8, !dbg !7713 | |
| %233 = load double, double* %14, align 8, !dbg !7713 | |
| %234 = fmul double %232, %233, !dbg !7713 | |
| %235 = load double, double* %8, align 8, !dbg !7713 | |
| %236 = load double, double* %12, align 8, !dbg !7713 | |
| %237 = fmul double %235, %236, !dbg !7713 | |
| %238 = fsub double %234, %237, !dbg !7713 | |
| %239 = fmul double %231, %238, !dbg !7713 | |
| %240 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7713 | |
| %241 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %240, i32 0, i32 2, !dbg !7713 | |
| %242 = load double*, double** %241, align 8, !dbg !7713 | |
| %243 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7713 | |
| %244 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %243, i32 0, i32 1, !dbg !7713 | |
| %245 = load i32, i32* %244, align 4, !dbg !7713 | |
| %246 = mul i32 1, %245, !dbg !7713 | |
| %247 = add i32 %246, 1, !dbg !7713 | |
| %248 = zext i32 %247 to i64, !dbg !7713 | |
| %249 = getelementptr inbounds double, double* %242, i64 %248, !dbg !7713 | |
| store double %239, double* %249, align 8, !dbg !7713 | |
| %250 = load double, double* %15, align 8, !dbg !7714 | |
| %251 = load double, double* %8, align 8, !dbg !7714 | |
| %252 = load double, double* %9, align 8, !dbg !7714 | |
| %253 = fmul double %251, %252, !dbg !7714 | |
| %254 = load double, double* %6, align 8, !dbg !7714 | |
| %255 = load double, double* %11, align 8, !dbg !7714 | |
| %256 = fmul double %254, %255, !dbg !7714 | |
| %257 = fsub double %253, %256, !dbg !7714 | |
| %258 = fmul double %250, %257, !dbg !7714 | |
| %259 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7714 | |
| %260 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %259, i32 0, i32 2, !dbg !7714 | |
| %261 = load double*, double** %260, align 8, !dbg !7714 | |
| %262 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7714 | |
| %263 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %262, i32 0, i32 1, !dbg !7714 | |
| %264 = load i32, i32* %263, align 4, !dbg !7714 | |
| %265 = mul i32 1, %264, !dbg !7714 | |
| %266 = add i32 %265, 2, !dbg !7714 | |
| %267 = zext i32 %266 to i64, !dbg !7714 | |
| %268 = getelementptr inbounds double, double* %261, i64 %267, !dbg !7714 | |
| store double %258, double* %268, align 8, !dbg !7714 | |
| %269 = load double, double* %15, align 8, !dbg !7715 | |
| %270 = load double, double* %9, align 8, !dbg !7715 | |
| %271 = load double, double* %13, align 8, !dbg !7715 | |
| %272 = fmul double %270, %271, !dbg !7715 | |
| %273 = load double, double* %10, align 8, !dbg !7715 | |
| %274 = load double, double* %12, align 8, !dbg !7715 | |
| %275 = fmul double %273, %274, !dbg !7715 | |
| %276 = fsub double %272, %275, !dbg !7715 | |
| %277 = fmul double %269, %276, !dbg !7715 | |
| %278 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7715 | |
| %279 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %278, i32 0, i32 2, !dbg !7715 | |
| %280 = load double*, double** %279, align 8, !dbg !7715 | |
| %281 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7715 | |
| %282 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %281, i32 0, i32 1, !dbg !7715 | |
| %283 = load i32, i32* %282, align 4, !dbg !7715 | |
| %284 = mul i32 2, %283, !dbg !7715 | |
| %285 = add i32 %284, 0, !dbg !7715 | |
| %286 = zext i32 %285 to i64, !dbg !7715 | |
| %287 = getelementptr inbounds double, double* %280, i64 %286, !dbg !7715 | |
| store double %277, double* %287, align 8, !dbg !7715 | |
| %288 = load double, double* %15, align 8, !dbg !7716 | |
| %289 = load double, double* %7, align 8, !dbg !7716 | |
| %290 = load double, double* %12, align 8, !dbg !7716 | |
| %291 = fmul double %289, %290, !dbg !7716 | |
| %292 = load double, double* %6, align 8, !dbg !7716 | |
| %293 = load double, double* %13, align 8, !dbg !7716 | |
| %294 = fmul double %292, %293, !dbg !7716 | |
| %295 = fsub double %291, %294, !dbg !7716 | |
| %296 = fmul double %288, %295, !dbg !7716 | |
| %297 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7716 | |
| %298 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %297, i32 0, i32 2, !dbg !7716 | |
| %299 = load double*, double** %298, align 8, !dbg !7716 | |
| %300 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7716 | |
| %301 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %300, i32 0, i32 1, !dbg !7716 | |
| %302 = load i32, i32* %301, align 4, !dbg !7716 | |
| %303 = mul i32 2, %302, !dbg !7716 | |
| %304 = add i32 %303, 1, !dbg !7716 | |
| %305 = zext i32 %304 to i64, !dbg !7716 | |
| %306 = getelementptr inbounds double, double* %299, i64 %305, !dbg !7716 | |
| store double %296, double* %306, align 8, !dbg !7716 | |
| %307 = load double, double* %15, align 8, !dbg !7717 | |
| %308 = load double, double* %6, align 8, !dbg !7717 | |
| %309 = load double, double* %10, align 8, !dbg !7717 | |
| %310 = fmul double %308, %309, !dbg !7717 | |
| %311 = load double, double* %7, align 8, !dbg !7717 | |
| %312 = load double, double* %9, align 8, !dbg !7717 | |
| %313 = fmul double %311, %312, !dbg !7717 | |
| %314 = fsub double %310, %313, !dbg !7717 | |
| %315 = fmul double %307, %314, !dbg !7717 | |
| %316 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7717 | |
| %317 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %316, i32 0, i32 2, !dbg !7717 | |
| %318 = load double*, double** %317, align 8, !dbg !7717 | |
| %319 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !7717 | |
| %320 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %319, i32 0, i32 1, !dbg !7717 | |
| %321 = load i32, i32* %320, align 4, !dbg !7717 | |
| %322 = mul i32 2, %321, !dbg !7717 | |
| %323 = add i32 %322, 2, !dbg !7717 | |
| %324 = zext i32 %323 to i64, !dbg !7717 | |
| %325 = getelementptr inbounds double, double* %318, i64 %324, !dbg !7717 | |
| store double %315, double* %325, align 8, !dbg !7717 | |
| store i64 1, i64* %3, align 8, !dbg !7718 | |
| br label %327, !dbg !7718 | |
| 326: ; preds = %2 | |
| store i64 0, i64* %3, align 8, !dbg !7719 | |
| br label %327, !dbg !7719 | |
| 327: ; preds = %326, %152 | |
| %328 = load i64, i64* %3, align 8, !dbg !7720 | |
| ret i64 %328, !dbg !7720 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @testForIdentity(%struct.Matrix_t* %0) #0 !dbg !7721 { | |
| %2 = alloca %struct.Matrix_t*, align 8 | |
| %3 = alloca i32, align 4 | |
| %4 = alloca i32, align 4 | |
| %5 = alloca double, align 8 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %2, metadata !7724, metadata !DIExpression()), !dbg !7725 | |
| call void @llvm.dbg.declare(metadata i32* %3, metadata !7726, metadata !DIExpression()), !dbg !7727 | |
| call void @llvm.dbg.declare(metadata i32* %4, metadata !7728, metadata !DIExpression()), !dbg !7729 | |
| call void @llvm.dbg.declare(metadata double* %5, metadata !7730, metadata !DIExpression()), !dbg !7731 | |
| store double 0.000000e+00, double* %5, align 8, !dbg !7731 | |
| store i32 0, i32* %3, align 4, !dbg !7732 | |
| br label %6, !dbg !7734 | |
| 6: ; preds = %46, %1 | |
| %7 = load i32, i32* %3, align 4, !dbg !7735 | |
| %8 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7737 | |
| %9 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %8, i32 0, i32 0, !dbg !7738 | |
| %10 = load i32, i32* %9, align 8, !dbg !7738 | |
| %11 = icmp ult i32 %7, %10, !dbg !7739 | |
| br i1 %11, label %12, label %49, !dbg !7740 | |
| 12: ; preds = %6 | |
| store i32 0, i32* %4, align 4, !dbg !7741 | |
| br label %13, !dbg !7744 | |
| 13: ; preds = %42, %12 | |
| %14 = load i32, i32* %4, align 4, !dbg !7745 | |
| %15 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7747 | |
| %16 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %15, i32 0, i32 1, !dbg !7748 | |
| %17 = load i32, i32* %16, align 4, !dbg !7748 | |
| %18 = icmp ult i32 %14, %17, !dbg !7749 | |
| br i1 %18, label %19, label %45, !dbg !7750 | |
| 19: ; preds = %13 | |
| %20 = load i32, i32* %3, align 4, !dbg !7751 | |
| %21 = load i32, i32* %4, align 4, !dbg !7754 | |
| %22 = icmp eq i32 %20, %21, !dbg !7755 | |
| br i1 %22, label %23, label %32, !dbg !7756 | |
| 23: ; preds = %19 | |
| %24 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7757 | |
| %25 = load i32, i32* %3, align 4, !dbg !7758 | |
| %26 = load i32, i32* %4, align 4, !dbg !7759 | |
| %27 = call double @matrixGet(%struct.Matrix_t* %24, i32 %25, i32 %26), !dbg !7760 | |
| %28 = fsub double 1.000000e+00, %27, !dbg !7761 | |
| %29 = call double @llvm.fabs.f64(double %28), !dbg !7762 | |
| %30 = load double, double* %5, align 8, !dbg !7763 | |
| %31 = fadd double %30, %29, !dbg !7763 | |
| store double %31, double* %5, align 8, !dbg !7763 | |
| br label %41, !dbg !7764 | |
| 32: ; preds = %19 | |
| %33 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7765 | |
| %34 = load i32, i32* %3, align 4, !dbg !7766 | |
| %35 = load i32, i32* %4, align 4, !dbg !7767 | |
| %36 = call double @matrixGet(%struct.Matrix_t* %33, i32 %34, i32 %35), !dbg !7768 | |
| %37 = fsub double 0.000000e+00, %36, !dbg !7769 | |
| %38 = call double @llvm.fabs.f64(double %37), !dbg !7770 | |
| %39 = load double, double* %5, align 8, !dbg !7771 | |
| %40 = fadd double %39, %38, !dbg !7771 | |
| store double %40, double* %5, align 8, !dbg !7771 | |
| br label %41 | |
| 41: ; preds = %32, %23 | |
| br label %42, !dbg !7772 | |
| 42: ; preds = %41 | |
| %43 = load i32, i32* %4, align 4, !dbg !7773 | |
| %44 = add i32 %43, 1, !dbg !7773 | |
| store i32 %44, i32* %4, align 4, !dbg !7773 | |
| br label %13, !dbg !7774, !llvm.loop !7775 | |
| 45: ; preds = %13 | |
| br label %46, !dbg !7777 | |
| 46: ; preds = %45 | |
| %47 = load i32, i32* %3, align 4, !dbg !7778 | |
| %48 = add i32 %47, 1, !dbg !7778 | |
| store i32 %48, i32* %3, align 4, !dbg !7778 | |
| br label %6, !dbg !7779, !llvm.loop !7780 | |
| 49: ; preds = %6 | |
| %50 = load double, double* %5, align 8, !dbg !7782 | |
| ret double %50, !dbg !7783 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @testForZeroMatrix(%struct.Matrix_t* %0) #0 !dbg !7784 { | |
| %2 = alloca %struct.Matrix_t*, align 8 | |
| %3 = alloca i32, align 4 | |
| %4 = alloca i32, align 4 | |
| %5 = alloca double, align 8 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %2, metadata !7785, metadata !DIExpression()), !dbg !7786 | |
| call void @llvm.dbg.declare(metadata i32* %3, metadata !7787, metadata !DIExpression()), !dbg !7788 | |
| call void @llvm.dbg.declare(metadata i32* %4, metadata !7789, metadata !DIExpression()), !dbg !7790 | |
| call void @llvm.dbg.declare(metadata double* %5, metadata !7791, metadata !DIExpression()), !dbg !7792 | |
| store double 0.000000e+00, double* %5, align 8, !dbg !7792 | |
| store i32 0, i32* %3, align 4, !dbg !7793 | |
| br label %6, !dbg !7795 | |
| 6: ; preds = %32, %1 | |
| %7 = load i32, i32* %3, align 4, !dbg !7796 | |
| %8 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7798 | |
| %9 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %8, i32 0, i32 0, !dbg !7799 | |
| %10 = load i32, i32* %9, align 8, !dbg !7799 | |
| %11 = icmp ult i32 %7, %10, !dbg !7800 | |
| br i1 %11, label %12, label %35, !dbg !7801 | |
| 12: ; preds = %6 | |
| store i32 0, i32* %4, align 4, !dbg !7802 | |
| br label %13, !dbg !7805 | |
| 13: ; preds = %28, %12 | |
| %14 = load i32, i32* %4, align 4, !dbg !7806 | |
| %15 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7808 | |
| %16 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %15, i32 0, i32 1, !dbg !7809 | |
| %17 = load i32, i32* %16, align 4, !dbg !7809 | |
| %18 = icmp ult i32 %14, %17, !dbg !7810 | |
| br i1 %18, label %19, label %31, !dbg !7811 | |
| 19: ; preds = %13 | |
| %20 = load %struct.Matrix_t*, %struct.Matrix_t** %2, align 8, !dbg !7812 | |
| %21 = load i32, i32* %3, align 4, !dbg !7814 | |
| %22 = load i32, i32* %4, align 4, !dbg !7815 | |
| %23 = call double @matrixGet(%struct.Matrix_t* %20, i32 %21, i32 %22), !dbg !7816 | |
| %24 = fsub double 0.000000e+00, %23, !dbg !7817 | |
| %25 = call double @llvm.fabs.f64(double %24), !dbg !7818 | |
| %26 = load double, double* %5, align 8, !dbg !7819 | |
| %27 = fadd double %26, %25, !dbg !7819 | |
| store double %27, double* %5, align 8, !dbg !7819 | |
| br label %28, !dbg !7820 | |
| 28: ; preds = %19 | |
| %29 = load i32, i32* %4, align 4, !dbg !7821 | |
| %30 = add i32 %29, 1, !dbg !7821 | |
| store i32 %30, i32* %4, align 4, !dbg !7821 | |
| br label %13, !dbg !7822, !llvm.loop !7823 | |
| 31: ; preds = %13 | |
| br label %32, !dbg !7825 | |
| 32: ; preds = %31 | |
| %33 = load i32, i32* %3, align 4, !dbg !7826 | |
| %34 = add i32 %33, 1, !dbg !7826 | |
| store i32 %34, i32* %3, align 4, !dbg !7826 | |
| br label %6, !dbg !7827, !llvm.loop !7828 | |
| 35: ; preds = %6 | |
| %36 = load double, double* %5, align 8, !dbg !7830 | |
| ret double %36, !dbg !7831 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @quadraticDerivativeEvaluation(double* %0, double %1) #0 !dbg !7832 { | |
| %3 = alloca double*, align 8 | |
| %4 = alloca double, align 8 | |
| store double* %0, double** %3, align 8 | |
| call void @llvm.dbg.declare(metadata double** %3, metadata !7835, metadata !DIExpression()), !dbg !7836 | |
| store double %1, double* %4, align 8 | |
| call void @llvm.dbg.declare(metadata double* %4, metadata !7837, metadata !DIExpression()), !dbg !7838 | |
| %5 = load double*, double** %3, align 8, !dbg !7839 | |
| %6 = getelementptr inbounds double, double* %5, i64 2, !dbg !7839 | |
| %7 = load double, double* %6, align 8, !dbg !7839 | |
| %8 = fmul double 2.000000e+00, %7, !dbg !7840 | |
| %9 = load double, double* %4, align 8, !dbg !7841 | |
| %10 = fmul double %8, %9, !dbg !7842 | |
| %11 = load double*, double** %3, align 8, !dbg !7843 | |
| %12 = getelementptr inbounds double, double* %11, i64 1, !dbg !7843 | |
| %13 = load double, double* %12, align 8, !dbg !7843 | |
| %14 = fadd double %10, %13, !dbg !7844 | |
| ret double %14, !dbg !7845 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @quadraticEvaluation(double* %0, double %1) #0 !dbg !7846 { | |
| %3 = alloca double*, align 8 | |
| %4 = alloca double, align 8 | |
| store double* %0, double** %3, align 8 | |
| call void @llvm.dbg.declare(metadata double** %3, metadata !7847, metadata !DIExpression()), !dbg !7848 | |
| store double %1, double* %4, align 8 | |
| call void @llvm.dbg.declare(metadata double* %4, metadata !7849, metadata !DIExpression()), !dbg !7850 | |
| %5 = load double, double* %4, align 8, !dbg !7851 | |
| %6 = load double, double* %4, align 8, !dbg !7852 | |
| %7 = fmul double %5, %6, !dbg !7853 | |
| %8 = load double*, double** %3, align 8, !dbg !7854 | |
| %9 = getelementptr inbounds double, double* %8, i64 2, !dbg !7854 | |
| %10 = load double, double* %9, align 8, !dbg !7854 | |
| %11 = fmul double %7, %10, !dbg !7855 | |
| %12 = load double, double* %4, align 8, !dbg !7856 | |
| %13 = load double*, double** %3, align 8, !dbg !7857 | |
| %14 = getelementptr inbounds double, double* %13, i64 1, !dbg !7857 | |
| %15 = load double, double* %14, align 8, !dbg !7857 | |
| %16 = fmul double %12, %15, !dbg !7858 | |
| %17 = fadd double %11, %16, !dbg !7859 | |
| %18 = load double*, double** %3, align 8, !dbg !7860 | |
| %19 = getelementptr inbounds double, double* %18, i64 0, !dbg !7860 | |
| %20 = load double, double* %19, align 8, !dbg !7860 | |
| %21 = fadd double %17, %20, !dbg !7861 | |
| ret double %21, !dbg !7862 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @quadraticRegression(double* %0, double* %1, i32 %2, double* %3) #0 !dbg !7863 { | |
| %5 = alloca i64, align 8 | |
| %6 = alloca double*, align 8 | |
| %7 = alloca double*, align 8 | |
| %8 = alloca i32, align 4 | |
| %9 = alloca double*, align 8 | |
| %10 = alloca i32, align 4 | |
| %11 = alloca double, align 8 | |
| %12 = alloca double, align 8 | |
| %13 = alloca double, align 8 | |
| %14 = alloca double, align 8 | |
| %15 = alloca double, align 8 | |
| %16 = alloca double, align 8 | |
| %17 = alloca double, align 8 | |
| %18 = alloca [9 x double], align 16 | |
| %19 = alloca %struct.Matrix_t, align 8 | |
| %20 = alloca [9 x double], align 16 | |
| %21 = alloca %struct.Matrix_t, align 8 | |
| %22 = alloca [3 x double], align 16 | |
| %23 = alloca %struct.Matrix_t, align 8 | |
| %24 = alloca [3 x double], align 16 | |
| %25 = alloca %struct.Matrix_t, align 8 | |
| %26 = alloca double, align 8 | |
| %27 = alloca double, align 8 | |
| %28 = alloca double, align 8 | |
| store double* %0, double** %6, align 8 | |
| call void @llvm.dbg.declare(metadata double** %6, metadata !7866, metadata !DIExpression()), !dbg !7867 | |
| store double* %1, double** %7, align 8 | |
| call void @llvm.dbg.declare(metadata double** %7, metadata !7868, metadata !DIExpression()), !dbg !7869 | |
| store i32 %2, i32* %8, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !7870, metadata !DIExpression()), !dbg !7871 | |
| store double* %3, double** %9, align 8 | |
| call void @llvm.dbg.declare(metadata double** %9, metadata !7872, metadata !DIExpression()), !dbg !7873 | |
| call void @llvm.dbg.declare(metadata i32* %10, metadata !7874, metadata !DIExpression()), !dbg !7875 | |
| call void @llvm.dbg.declare(metadata double* %11, metadata !7876, metadata !DIExpression()), !dbg !7877 | |
| store double 0.000000e+00, double* %11, align 8, !dbg !7877 | |
| call void @llvm.dbg.declare(metadata double* %12, metadata !7878, metadata !DIExpression()), !dbg !7879 | |
| store double 0.000000e+00, double* %12, align 8, !dbg !7879 | |
| call void @llvm.dbg.declare(metadata double* %13, metadata !7880, metadata !DIExpression()), !dbg !7881 | |
| store double 0.000000e+00, double* %13, align 8, !dbg !7881 | |
| call void @llvm.dbg.declare(metadata double* %14, metadata !7882, metadata !DIExpression()), !dbg !7883 | |
| store double 0.000000e+00, double* %14, align 8, !dbg !7883 | |
| call void @llvm.dbg.declare(metadata double* %15, metadata !7884, metadata !DIExpression()), !dbg !7885 | |
| store double 0.000000e+00, double* %15, align 8, !dbg !7885 | |
| call void @llvm.dbg.declare(metadata double* %16, metadata !7886, metadata !DIExpression()), !dbg !7887 | |
| store double 0.000000e+00, double* %16, align 8, !dbg !7887 | |
| call void @llvm.dbg.declare(metadata double* %17, metadata !7888, metadata !DIExpression()), !dbg !7889 | |
| store double 0.000000e+00, double* %17, align 8, !dbg !7889 | |
| call void @llvm.dbg.declare(metadata [9 x double]* %18, metadata !7890, metadata !DIExpression()), !dbg !7892 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t* %19, metadata !7893, metadata !DIExpression()), !dbg !7892 | |
| %29 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %19, i32 0, i32 0, !dbg !7892 | |
| store i32 3, i32* %29, align 8, !dbg !7892 | |
| %30 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %19, i32 0, i32 1, !dbg !7892 | |
| store i32 3, i32* %30, align 4, !dbg !7892 | |
| %31 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %19, i32 0, i32 2, !dbg !7892 | |
| %32 = getelementptr inbounds [9 x double], [9 x double]* %18, i64 0, i64 0, !dbg !7892 | |
| store double* %32, double** %31, align 8, !dbg !7892 | |
| call void @llvm.dbg.declare(metadata [9 x double]* %20, metadata !7894, metadata !DIExpression()), !dbg !7895 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t* %21, metadata !7896, metadata !DIExpression()), !dbg !7895 | |
| %33 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %21, i32 0, i32 0, !dbg !7895 | |
| store i32 3, i32* %33, align 8, !dbg !7895 | |
| %34 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %21, i32 0, i32 1, !dbg !7895 | |
| store i32 3, i32* %34, align 4, !dbg !7895 | |
| %35 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %21, i32 0, i32 2, !dbg !7895 | |
| %36 = getelementptr inbounds [9 x double], [9 x double]* %20, i64 0, i64 0, !dbg !7895 | |
| store double* %36, double** %35, align 8, !dbg !7895 | |
| call void @llvm.dbg.declare(metadata [3 x double]* %22, metadata !7897, metadata !DIExpression()), !dbg !7898 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t* %23, metadata !7899, metadata !DIExpression()), !dbg !7898 | |
| %37 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %23, i32 0, i32 0, !dbg !7898 | |
| store i32 3, i32* %37, align 8, !dbg !7898 | |
| %38 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %23, i32 0, i32 1, !dbg !7898 | |
| store i32 1, i32* %38, align 4, !dbg !7898 | |
| %39 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %23, i32 0, i32 2, !dbg !7898 | |
| %40 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0, !dbg !7898 | |
| store double* %40, double** %39, align 8, !dbg !7898 | |
| call void @llvm.dbg.declare(metadata [3 x double]* %24, metadata !7900, metadata !DIExpression()), !dbg !7901 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t* %25, metadata !7902, metadata !DIExpression()), !dbg !7901 | |
| %41 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %25, i32 0, i32 0, !dbg !7901 | |
| store i32 3, i32* %41, align 8, !dbg !7901 | |
| %42 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %25, i32 0, i32 1, !dbg !7901 | |
| store i32 1, i32* %42, align 4, !dbg !7901 | |
| %43 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %25, i32 0, i32 2, !dbg !7901 | |
| %44 = getelementptr inbounds [3 x double], [3 x double]* %24, i64 0, i64 0, !dbg !7901 | |
| store double* %44, double** %43, align 8, !dbg !7901 | |
| %45 = load i32, i32* %8, align 4, !dbg !7903 | |
| %46 = icmp slt i32 %45, 3, !dbg !7905 | |
| br i1 %46, label %47, label %48, !dbg !7906 | |
| 47: ; preds = %4 | |
| store i64 0, i64* %5, align 8, !dbg !7907 | |
| br label %127, !dbg !7907 | |
| 48: ; preds = %4 | |
| store i32 0, i32* %10, align 4, !dbg !7908 | |
| br label %49, !dbg !7910 | |
| 49: ; preds = %96, %48 | |
| %50 = load i32, i32* %10, align 4, !dbg !7911 | |
| %51 = load i32, i32* %8, align 4, !dbg !7913 | |
| %52 = icmp slt i32 %50, %51, !dbg !7914 | |
| br i1 %52, label %53, label %99, !dbg !7915 | |
| 53: ; preds = %49 | |
| call void @llvm.dbg.declare(metadata double* %26, metadata !7916, metadata !DIExpression()), !dbg !7918 | |
| %54 = load double*, double** %6, align 8, !dbg !7919 | |
| %55 = load i32, i32* %10, align 4, !dbg !7920 | |
| %56 = sext i32 %55 to i64, !dbg !7919 | |
| %57 = getelementptr inbounds double, double* %54, i64 %56, !dbg !7919 | |
| %58 = load double, double* %57, align 8, !dbg !7919 | |
| store double %58, double* %26, align 8, !dbg !7918 | |
| call void @llvm.dbg.declare(metadata double* %27, metadata !7921, metadata !DIExpression()), !dbg !7922 | |
| %59 = load double*, double** %7, align 8, !dbg !7923 | |
| %60 = load i32, i32* %10, align 4, !dbg !7924 | |
| %61 = sext i32 %60 to i64, !dbg !7923 | |
| %62 = getelementptr inbounds double, double* %59, i64 %61, !dbg !7923 | |
| %63 = load double, double* %62, align 8, !dbg !7923 | |
| store double %63, double* %27, align 8, !dbg !7922 | |
| call void @llvm.dbg.declare(metadata double* %28, metadata !7925, metadata !DIExpression()), !dbg !7926 | |
| %64 = load double, double* %26, align 8, !dbg !7927 | |
| %65 = load double, double* %26, align 8, !dbg !7928 | |
| %66 = fmul double %64, %65, !dbg !7929 | |
| store double %66, double* %28, align 8, !dbg !7926 | |
| %67 = load double, double* %26, align 8, !dbg !7930 | |
| %68 = load double, double* %14, align 8, !dbg !7931 | |
| %69 = fadd double %68, %67, !dbg !7931 | |
| store double %69, double* %14, align 8, !dbg !7931 | |
| %70 = load double, double* %27, align 8, !dbg !7932 | |
| %71 = load double, double* %17, align 8, !dbg !7933 | |
| %72 = fadd double %71, %70, !dbg !7933 | |
| store double %72, double* %17, align 8, !dbg !7933 | |
| %73 = load double, double* %28, align 8, !dbg !7934 | |
| %74 = load double, double* %13, align 8, !dbg !7935 | |
| %75 = fadd double %74, %73, !dbg !7935 | |
| store double %75, double* %13, align 8, !dbg !7935 | |
| %76 = load double, double* %28, align 8, !dbg !7936 | |
| %77 = load double, double* %26, align 8, !dbg !7937 | |
| %78 = fmul double %76, %77, !dbg !7938 | |
| %79 = load double, double* %12, align 8, !dbg !7939 | |
| %80 = fadd double %79, %78, !dbg !7939 | |
| store double %80, double* %12, align 8, !dbg !7939 | |
| %81 = load double, double* %28, align 8, !dbg !7940 | |
| %82 = load double, double* %28, align 8, !dbg !7941 | |
| %83 = fmul double %81, %82, !dbg !7942 | |
| %84 = load double, double* %11, align 8, !dbg !7943 | |
| %85 = fadd double %84, %83, !dbg !7943 | |
| store double %85, double* %11, align 8, !dbg !7943 | |
| %86 = load double, double* %26, align 8, !dbg !7944 | |
| %87 = load double, double* %27, align 8, !dbg !7945 | |
| %88 = fmul double %86, %87, !dbg !7946 | |
| %89 = load double, double* %16, align 8, !dbg !7947 | |
| %90 = fadd double %89, %88, !dbg !7947 | |
| store double %90, double* %16, align 8, !dbg !7947 | |
| %91 = load double, double* %28, align 8, !dbg !7948 | |
| %92 = load double, double* %27, align 8, !dbg !7949 | |
| %93 = fmul double %91, %92, !dbg !7950 | |
| %94 = load double, double* %15, align 8, !dbg !7951 | |
| %95 = fadd double %94, %93, !dbg !7951 | |
| store double %95, double* %15, align 8, !dbg !7951 | |
| br label %96, !dbg !7952 | |
| 96: ; preds = %53 | |
| %97 = load i32, i32* %10, align 4, !dbg !7953 | |
| %98 = add nsw i32 %97, 1, !dbg !7953 | |
| store i32 %98, i32* %10, align 4, !dbg !7953 | |
| br label %49, !dbg !7954, !llvm.loop !7955 | |
| 99: ; preds = %49 | |
| %100 = load double, double* %11, align 8, !dbg !7957 | |
| call void @matrixSet(%struct.Matrix_t* %19, i32 0, i32 0, double %100), !dbg !7958 | |
| %101 = load double, double* %12, align 8, !dbg !7959 | |
| call void @matrixSet(%struct.Matrix_t* %19, i32 0, i32 1, double %101), !dbg !7960 | |
| %102 = load double, double* %13, align 8, !dbg !7961 | |
| call void @matrixSet(%struct.Matrix_t* %19, i32 0, i32 2, double %102), !dbg !7962 | |
| %103 = load double, double* %12, align 8, !dbg !7963 | |
| call void @matrixSet(%struct.Matrix_t* %19, i32 1, i32 0, double %103), !dbg !7964 | |
| %104 = load double, double* %13, align 8, !dbg !7965 | |
| call void @matrixSet(%struct.Matrix_t* %19, i32 1, i32 1, double %104), !dbg !7966 | |
| %105 = load double, double* %14, align 8, !dbg !7967 | |
| call void @matrixSet(%struct.Matrix_t* %19, i32 1, i32 2, double %105), !dbg !7968 | |
| %106 = load double, double* %13, align 8, !dbg !7969 | |
| call void @matrixSet(%struct.Matrix_t* %19, i32 2, i32 0, double %106), !dbg !7970 | |
| %107 = load double, double* %14, align 8, !dbg !7971 | |
| call void @matrixSet(%struct.Matrix_t* %19, i32 2, i32 1, double %107), !dbg !7972 | |
| %108 = load i32, i32* %8, align 4, !dbg !7973 | |
| %109 = sitofp i32 %108 to double, !dbg !7973 | |
| call void @matrixSet(%struct.Matrix_t* %19, i32 2, i32 2, double %109), !dbg !7974 | |
| %110 = call i64 @matrixInverse(%struct.Matrix_t* %19, %struct.Matrix_t* %21), !dbg !7975 | |
| %111 = icmp ne i64 %110, 0, !dbg !7975 | |
| br i1 %111, label %113, label %112, !dbg !7977 | |
| 112: ; preds = %99 | |
| store i64 0, i64* %5, align 8, !dbg !7978 | |
| br label %127, !dbg !7978 | |
| 113: ; preds = %99 | |
| %114 = load double, double* %15, align 8, !dbg !7979 | |
| call void @matrixSet(%struct.Matrix_t* %23, i32 0, i32 0, double %114), !dbg !7980 | |
| %115 = load double, double* %16, align 8, !dbg !7981 | |
| call void @matrixSet(%struct.Matrix_t* %23, i32 0, i32 1, double %115), !dbg !7982 | |
| %116 = load double, double* %17, align 8, !dbg !7983 | |
| call void @matrixSet(%struct.Matrix_t* %23, i32 0, i32 2, double %116), !dbg !7984 | |
| %117 = call i64 @matrixMultiply(%struct.Matrix_t* %21, %struct.Matrix_t* %23, %struct.Matrix_t* %25), !dbg !7985 | |
| %118 = call double @matrixGet(%struct.Matrix_t* %25, i32 0, i32 0), !dbg !7986 | |
| %119 = load double*, double** %9, align 8, !dbg !7987 | |
| %120 = getelementptr inbounds double, double* %119, i64 2, !dbg !7987 | |
| store double %118, double* %120, align 8, !dbg !7988 | |
| %121 = call double @matrixGet(%struct.Matrix_t* %25, i32 0, i32 1), !dbg !7989 | |
| %122 = load double*, double** %9, align 8, !dbg !7990 | |
| %123 = getelementptr inbounds double, double* %122, i64 1, !dbg !7990 | |
| store double %121, double* %123, align 8, !dbg !7991 | |
| %124 = call double @matrixGet(%struct.Matrix_t* %25, i32 0, i32 2), !dbg !7992 | |
| %125 = load double*, double** %9, align 8, !dbg !7993 | |
| %126 = getelementptr inbounds double, double* %125, i64 0, !dbg !7993 | |
| store double %124, double* %126, align 8, !dbg !7994 | |
| store i64 1, i64* %5, align 8, !dbg !7995 | |
| br label %127, !dbg !7995 | |
| 127: ; preds = %113, %112, %47 | |
| %128 = load i64, i64* %5, align 8, !dbg !7996 | |
| ret i64 %128, !dbg !7996 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float* @vector3Setf(float* %0, float %1) #0 !dbg !7997 { | |
| %3 = alloca float*, align 8 | |
| %4 = alloca float, align 4 | |
| %5 = alloca i32, align 4 | |
| store float* %0, float** %3, align 8 | |
| call void @llvm.dbg.declare(metadata float** %3, metadata !8000, metadata !DIExpression()), !dbg !8001 | |
| store float %1, float* %4, align 4 | |
| call void @llvm.dbg.declare(metadata float* %4, metadata !8002, metadata !DIExpression()), !dbg !8003 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !8004, metadata !DIExpression()), !dbg !8005 | |
| store i32 0, i32* %5, align 4, !dbg !8006 | |
| br label %6, !dbg !8008 | |
| 6: ; preds = %15, %2 | |
| %7 = load i32, i32* %5, align 4, !dbg !8009 | |
| %8 = icmp slt i32 %7, 3, !dbg !8011 | |
| br i1 %8, label %9, label %18, !dbg !8012 | |
| 9: ; preds = %6 | |
| %10 = load float, float* %4, align 4, !dbg !8013 | |
| %11 = load float*, float** %3, align 8, !dbg !8014 | |
| %12 = load i32, i32* %5, align 4, !dbg !8015 | |
| %13 = sext i32 %12 to i64, !dbg !8014 | |
| %14 = getelementptr inbounds float, float* %11, i64 %13, !dbg !8014 | |
| store float %10, float* %14, align 4, !dbg !8016 | |
| br label %15, !dbg !8014 | |
| 15: ; preds = %9 | |
| %16 = load i32, i32* %5, align 4, !dbg !8017 | |
| %17 = add nsw i32 %16, 1, !dbg !8017 | |
| store i32 %17, i32* %5, align 4, !dbg !8017 | |
| br label %6, !dbg !8018, !llvm.loop !8019 | |
| 18: ; preds = %6 | |
| %19 = load float*, float** %3, align 8, !dbg !8021 | |
| ret float* %19, !dbg !8022 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float* @vector3Copyf(float* %0, float* %1) #0 !dbg !8023 { | |
| %3 = alloca float*, align 8 | |
| %4 = alloca float*, align 8 | |
| %5 = alloca i32, align 4 | |
| store float* %0, float** %3, align 8 | |
| call void @llvm.dbg.declare(metadata float** %3, metadata !8026, metadata !DIExpression()), !dbg !8027 | |
| store float* %1, float** %4, align 8 | |
| call void @llvm.dbg.declare(metadata float** %4, metadata !8028, metadata !DIExpression()), !dbg !8029 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !8030, metadata !DIExpression()), !dbg !8031 | |
| store i32 0, i32* %5, align 4, !dbg !8032 | |
| br label %6, !dbg !8034 | |
| 6: ; preds = %19, %2 | |
| %7 = load i32, i32* %5, align 4, !dbg !8035 | |
| %8 = icmp slt i32 %7, 3, !dbg !8037 | |
| br i1 %8, label %9, label %22, !dbg !8038 | |
| 9: ; preds = %6 | |
| %10 = load float*, float** %3, align 8, !dbg !8039 | |
| %11 = load i32, i32* %5, align 4, !dbg !8040 | |
| %12 = sext i32 %11 to i64, !dbg !8039 | |
| %13 = getelementptr inbounds float, float* %10, i64 %12, !dbg !8039 | |
| %14 = load float, float* %13, align 4, !dbg !8039 | |
| %15 = load float*, float** %4, align 8, !dbg !8041 | |
| %16 = load i32, i32* %5, align 4, !dbg !8042 | |
| %17 = sext i32 %16 to i64, !dbg !8041 | |
| %18 = getelementptr inbounds float, float* %15, i64 %17, !dbg !8041 | |
| store float %14, float* %18, align 4, !dbg !8043 | |
| br label %19, !dbg !8041 | |
| 19: ; preds = %9 | |
| %20 = load i32, i32* %5, align 4, !dbg !8044 | |
| %21 = add nsw i32 %20, 1, !dbg !8044 | |
| store i32 %21, i32* %5, align 4, !dbg !8044 | |
| br label %6, !dbg !8045, !llvm.loop !8046 | |
| 22: ; preds = %6 | |
| %23 = load float*, float** %4, align 8, !dbg !8048 | |
| ret float* %23, !dbg !8049 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float* @vector3MultiplyAccumulatef(float* %0, float* %1, float %2, float* %3) #0 !dbg !8050 { | |
| %5 = alloca float*, align 8 | |
| %6 = alloca float*, align 8 | |
| %7 = alloca float, align 4 | |
| %8 = alloca float*, align 8 | |
| %9 = alloca i32, align 4 | |
| store float* %0, float** %5, align 8 | |
| call void @llvm.dbg.declare(metadata float** %5, metadata !8053, metadata !DIExpression()), !dbg !8054 | |
| store float* %1, float** %6, align 8 | |
| call void @llvm.dbg.declare(metadata float** %6, metadata !8055, metadata !DIExpression()), !dbg !8056 | |
| store float %2, float* %7, align 4 | |
| call void @llvm.dbg.declare(metadata float* %7, metadata !8057, metadata !DIExpression()), !dbg !8058 | |
| store float* %3, float** %8, align 8 | |
| call void @llvm.dbg.declare(metadata float** %8, metadata !8059, metadata !DIExpression()), !dbg !8060 | |
| call void @llvm.dbg.declare(metadata i32* %9, metadata !8061, metadata !DIExpression()), !dbg !8062 | |
| store i32 0, i32* %9, align 4, !dbg !8063 | |
| br label %10, !dbg !8065 | |
| 10: ; preds = %31, %4 | |
| %11 = load i32, i32* %9, align 4, !dbg !8066 | |
| %12 = icmp slt i32 %11, 3, !dbg !8068 | |
| br i1 %12, label %13, label %34, !dbg !8069 | |
| 13: ; preds = %10 | |
| %14 = load float*, float** %5, align 8, !dbg !8070 | |
| %15 = load i32, i32* %9, align 4, !dbg !8071 | |
| %16 = sext i32 %15 to i64, !dbg !8070 | |
| %17 = getelementptr inbounds float, float* %14, i64 %16, !dbg !8070 | |
| %18 = load float, float* %17, align 4, !dbg !8070 | |
| %19 = load float*, float** %6, align 8, !dbg !8072 | |
| %20 = load i32, i32* %9, align 4, !dbg !8073 | |
| %21 = sext i32 %20 to i64, !dbg !8072 | |
| %22 = getelementptr inbounds float, float* %19, i64 %21, !dbg !8072 | |
| %23 = load float, float* %22, align 4, !dbg !8072 | |
| %24 = load float, float* %7, align 4, !dbg !8074 | |
| %25 = fmul float %23, %24, !dbg !8075 | |
| %26 = fadd float %18, %25, !dbg !8076 | |
| %27 = load float*, float** %8, align 8, !dbg !8077 | |
| %28 = load i32, i32* %9, align 4, !dbg !8078 | |
| %29 = sext i32 %28 to i64, !dbg !8077 | |
| %30 = getelementptr inbounds float, float* %27, i64 %29, !dbg !8077 | |
| store float %26, float* %30, align 4, !dbg !8079 | |
| br label %31, !dbg !8077 | |
| 31: ; preds = %13 | |
| %32 = load i32, i32* %9, align 4, !dbg !8080 | |
| %33 = add nsw i32 %32, 1, !dbg !8080 | |
| store i32 %33, i32* %9, align 4, !dbg !8080 | |
| br label %10, !dbg !8081, !llvm.loop !8082 | |
| 34: ; preds = %10 | |
| %35 = load float*, float** %8, align 8, !dbg !8084 | |
| ret float* %35, !dbg !8085 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float* @vector3Sumf(float* %0, float* %1, float* %2) #0 !dbg !8086 { | |
| %4 = alloca float*, align 8 | |
| %5 = alloca float*, align 8 | |
| %6 = alloca float*, align 8 | |
| %7 = alloca i32, align 4 | |
| store float* %0, float** %4, align 8 | |
| call void @llvm.dbg.declare(metadata float** %4, metadata !8089, metadata !DIExpression()), !dbg !8090 | |
| store float* %1, float** %5, align 8 | |
| call void @llvm.dbg.declare(metadata float** %5, metadata !8091, metadata !DIExpression()), !dbg !8092 | |
| store float* %2, float** %6, align 8 | |
| call void @llvm.dbg.declare(metadata float** %6, metadata !8093, metadata !DIExpression()), !dbg !8094 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !8095, metadata !DIExpression()), !dbg !8096 | |
| store i32 0, i32* %7, align 4, !dbg !8097 | |
| br label %8, !dbg !8099 | |
| 8: ; preds = %27, %3 | |
| %9 = load i32, i32* %7, align 4, !dbg !8100 | |
| %10 = icmp slt i32 %9, 3, !dbg !8102 | |
| br i1 %10, label %11, label %30, !dbg !8103 | |
| 11: ; preds = %8 | |
| %12 = load float*, float** %4, align 8, !dbg !8104 | |
| %13 = load i32, i32* %7, align 4, !dbg !8105 | |
| %14 = sext i32 %13 to i64, !dbg !8104 | |
| %15 = getelementptr inbounds float, float* %12, i64 %14, !dbg !8104 | |
| %16 = load float, float* %15, align 4, !dbg !8104 | |
| %17 = load float*, float** %5, align 8, !dbg !8106 | |
| %18 = load i32, i32* %7, align 4, !dbg !8107 | |
| %19 = sext i32 %18 to i64, !dbg !8106 | |
| %20 = getelementptr inbounds float, float* %17, i64 %19, !dbg !8106 | |
| %21 = load float, float* %20, align 4, !dbg !8106 | |
| %22 = fadd float %16, %21, !dbg !8108 | |
| %23 = load float*, float** %6, align 8, !dbg !8109 | |
| %24 = load i32, i32* %7, align 4, !dbg !8110 | |
| %25 = sext i32 %24 to i64, !dbg !8109 | |
| %26 = getelementptr inbounds float, float* %23, i64 %25, !dbg !8109 | |
| store float %22, float* %26, align 4, !dbg !8111 | |
| br label %27, !dbg !8109 | |
| 27: ; preds = %11 | |
| %28 = load i32, i32* %7, align 4, !dbg !8112 | |
| %29 = add nsw i32 %28, 1, !dbg !8112 | |
| store i32 %29, i32* %7, align 4, !dbg !8112 | |
| br label %8, !dbg !8113, !llvm.loop !8114 | |
| 30: ; preds = %8 | |
| %31 = load float*, float** %6, align 8, !dbg !8116 | |
| ret float* %31, !dbg !8117 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float* @vector3Differencef(float* %0, float* %1, float* %2) #0 !dbg !8118 { | |
| %4 = alloca float*, align 8 | |
| %5 = alloca float*, align 8 | |
| %6 = alloca float*, align 8 | |
| %7 = alloca i32, align 4 | |
| store float* %0, float** %4, align 8 | |
| call void @llvm.dbg.declare(metadata float** %4, metadata !8119, metadata !DIExpression()), !dbg !8120 | |
| store float* %1, float** %5, align 8 | |
| call void @llvm.dbg.declare(metadata float** %5, metadata !8121, metadata !DIExpression()), !dbg !8122 | |
| store float* %2, float** %6, align 8 | |
| call void @llvm.dbg.declare(metadata float** %6, metadata !8123, metadata !DIExpression()), !dbg !8124 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !8125, metadata !DIExpression()), !dbg !8126 | |
| store i32 0, i32* %7, align 4, !dbg !8127 | |
| br label %8, !dbg !8129 | |
| 8: ; preds = %27, %3 | |
| %9 = load i32, i32* %7, align 4, !dbg !8130 | |
| %10 = icmp slt i32 %9, 3, !dbg !8132 | |
| br i1 %10, label %11, label %30, !dbg !8133 | |
| 11: ; preds = %8 | |
| %12 = load float*, float** %4, align 8, !dbg !8134 | |
| %13 = load i32, i32* %7, align 4, !dbg !8135 | |
| %14 = sext i32 %13 to i64, !dbg !8134 | |
| %15 = getelementptr inbounds float, float* %12, i64 %14, !dbg !8134 | |
| %16 = load float, float* %15, align 4, !dbg !8134 | |
| %17 = load float*, float** %5, align 8, !dbg !8136 | |
| %18 = load i32, i32* %7, align 4, !dbg !8137 | |
| %19 = sext i32 %18 to i64, !dbg !8136 | |
| %20 = getelementptr inbounds float, float* %17, i64 %19, !dbg !8136 | |
| %21 = load float, float* %20, align 4, !dbg !8136 | |
| %22 = fsub float %16, %21, !dbg !8138 | |
| %23 = load float*, float** %6, align 8, !dbg !8139 | |
| %24 = load i32, i32* %7, align 4, !dbg !8140 | |
| %25 = sext i32 %24 to i64, !dbg !8139 | |
| %26 = getelementptr inbounds float, float* %23, i64 %25, !dbg !8139 | |
| store float %22, float* %26, align 4, !dbg !8141 | |
| br label %27, !dbg !8139 | |
| 27: ; preds = %11 | |
| %28 = load i32, i32* %7, align 4, !dbg !8142 | |
| %29 = add nsw i32 %28, 1, !dbg !8142 | |
| store i32 %29, i32* %7, align 4, !dbg !8142 | |
| br label %8, !dbg !8143, !llvm.loop !8144 | |
| 30: ; preds = %8 | |
| %31 = load float*, float** %6, align 8, !dbg !8146 | |
| ret float* %31, !dbg !8147 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float* @vector3Multiplyf(float* %0, float* %1, float* %2) #0 !dbg !8148 { | |
| %4 = alloca float*, align 8 | |
| %5 = alloca float*, align 8 | |
| %6 = alloca float*, align 8 | |
| %7 = alloca i32, align 4 | |
| store float* %0, float** %4, align 8 | |
| call void @llvm.dbg.declare(metadata float** %4, metadata !8149, metadata !DIExpression()), !dbg !8150 | |
| store float* %1, float** %5, align 8 | |
| call void @llvm.dbg.declare(metadata float** %5, metadata !8151, metadata !DIExpression()), !dbg !8152 | |
| store float* %2, float** %6, align 8 | |
| call void @llvm.dbg.declare(metadata float** %6, metadata !8153, metadata !DIExpression()), !dbg !8154 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !8155, metadata !DIExpression()), !dbg !8156 | |
| store i32 0, i32* %7, align 4, !dbg !8157 | |
| br label %8, !dbg !8159 | |
| 8: ; preds = %27, %3 | |
| %9 = load i32, i32* %7, align 4, !dbg !8160 | |
| %10 = icmp slt i32 %9, 3, !dbg !8162 | |
| br i1 %10, label %11, label %30, !dbg !8163 | |
| 11: ; preds = %8 | |
| %12 = load float*, float** %4, align 8, !dbg !8164 | |
| %13 = load i32, i32* %7, align 4, !dbg !8165 | |
| %14 = sext i32 %13 to i64, !dbg !8164 | |
| %15 = getelementptr inbounds float, float* %12, i64 %14, !dbg !8164 | |
| %16 = load float, float* %15, align 4, !dbg !8164 | |
| %17 = load float*, float** %5, align 8, !dbg !8166 | |
| %18 = load i32, i32* %7, align 4, !dbg !8167 | |
| %19 = sext i32 %18 to i64, !dbg !8166 | |
| %20 = getelementptr inbounds float, float* %17, i64 %19, !dbg !8166 | |
| %21 = load float, float* %20, align 4, !dbg !8166 | |
| %22 = fmul float %16, %21, !dbg !8168 | |
| %23 = load float*, float** %6, align 8, !dbg !8169 | |
| %24 = load i32, i32* %7, align 4, !dbg !8170 | |
| %25 = sext i32 %24 to i64, !dbg !8169 | |
| %26 = getelementptr inbounds float, float* %23, i64 %25, !dbg !8169 | |
| store float %22, float* %26, align 4, !dbg !8171 | |
| br label %27, !dbg !8169 | |
| 27: ; preds = %11 | |
| %28 = load i32, i32* %7, align 4, !dbg !8172 | |
| %29 = add nsw i32 %28, 1, !dbg !8172 | |
| store i32 %29, i32* %7, align 4, !dbg !8172 | |
| br label %8, !dbg !8173, !llvm.loop !8174 | |
| 30: ; preds = %8 | |
| %31 = load float*, float** %6, align 8, !dbg !8176 | |
| ret float* %31, !dbg !8177 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @vector3Dotf(float* %0, float* %1) #0 !dbg !8178 { | |
| %3 = alloca float*, align 8 | |
| %4 = alloca float*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca float, align 4 | |
| store float* %0, float** %3, align 8 | |
| call void @llvm.dbg.declare(metadata float** %3, metadata !8181, metadata !DIExpression()), !dbg !8182 | |
| store float* %1, float** %4, align 8 | |
| call void @llvm.dbg.declare(metadata float** %4, metadata !8183, metadata !DIExpression()), !dbg !8184 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !8185, metadata !DIExpression()), !dbg !8186 | |
| call void @llvm.dbg.declare(metadata float* %6, metadata !8187, metadata !DIExpression()), !dbg !8188 | |
| store float 0.000000e+00, float* %6, align 4, !dbg !8188 | |
| store i32 0, i32* %5, align 4, !dbg !8189 | |
| br label %7, !dbg !8191 | |
| 7: ; preds = %24, %2 | |
| %8 = load i32, i32* %5, align 4, !dbg !8192 | |
| %9 = icmp slt i32 %8, 3, !dbg !8194 | |
| br i1 %9, label %10, label %27, !dbg !8195 | |
| 10: ; preds = %7 | |
| %11 = load float*, float** %3, align 8, !dbg !8196 | |
| %12 = load i32, i32* %5, align 4, !dbg !8197 | |
| %13 = sext i32 %12 to i64, !dbg !8196 | |
| %14 = getelementptr inbounds float, float* %11, i64 %13, !dbg !8196 | |
| %15 = load float, float* %14, align 4, !dbg !8196 | |
| %16 = load float*, float** %4, align 8, !dbg !8198 | |
| %17 = load i32, i32* %5, align 4, !dbg !8199 | |
| %18 = sext i32 %17 to i64, !dbg !8198 | |
| %19 = getelementptr inbounds float, float* %16, i64 %18, !dbg !8198 | |
| %20 = load float, float* %19, align 4, !dbg !8198 | |
| %21 = fmul float %15, %20, !dbg !8200 | |
| %22 = load float, float* %6, align 4, !dbg !8201 | |
| %23 = fadd float %22, %21, !dbg !8201 | |
| store float %23, float* %6, align 4, !dbg !8201 | |
| br label %24, !dbg !8202 | |
| 24: ; preds = %10 | |
| %25 = load i32, i32* %5, align 4, !dbg !8203 | |
| %26 = add nsw i32 %25, 1, !dbg !8203 | |
| store i32 %26, i32* %5, align 4, !dbg !8203 | |
| br label %7, !dbg !8204, !llvm.loop !8205 | |
| 27: ; preds = %7 | |
| %28 = load float, float* %6, align 4, !dbg !8207 | |
| ret float %28, !dbg !8208 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @vector3AngleBetweenf(float* %0, float* %1) #0 !dbg !8209 { | |
| %3 = alloca float, align 4 | |
| %4 = alloca float*, align 8 | |
| %5 = alloca float*, align 8 | |
| %6 = alloca float, align 4 | |
| %7 = alloca float, align 4 | |
| store float* %0, float** %4, align 8 | |
| call void @llvm.dbg.declare(metadata float** %4, metadata !8210, metadata !DIExpression()), !dbg !8211 | |
| store float* %1, float** %5, align 8 | |
| call void @llvm.dbg.declare(metadata float** %5, metadata !8212, metadata !DIExpression()), !dbg !8213 | |
| call void @llvm.dbg.declare(metadata float* %6, metadata !8214, metadata !DIExpression()), !dbg !8215 | |
| %8 = load float*, float** %4, align 8, !dbg !8216 | |
| %9 = load float*, float** %5, align 8, !dbg !8217 | |
| %10 = call float @vector3Dotf(float* %8, float* %9), !dbg !8218 | |
| store float %10, float* %6, align 4, !dbg !8215 | |
| call void @llvm.dbg.declare(metadata float* %7, metadata !8219, metadata !DIExpression()), !dbg !8220 | |
| %11 = load float*, float** %4, align 8, !dbg !8221 | |
| %12 = call float @vector3LengthSquaredf(float* %11), !dbg !8222 | |
| %13 = load float*, float** %5, align 8, !dbg !8223 | |
| %14 = call float @vector3LengthSquaredf(float* %13), !dbg !8224 | |
| %15 = fmul float %12, %14, !dbg !8225 | |
| store float %15, float* %7, align 4, !dbg !8220 | |
| %16 = load float, float* %7, align 4, !dbg !8226 | |
| %17 = fcmp ogt float %16, 0.000000e+00, !dbg !8228 | |
| br i1 %17, label %18, label %25, !dbg !8229 | |
| 18: ; preds = %2 | |
| %19 = load float, float* %7, align 4, !dbg !8230 | |
| %20 = call float @sqrtf(float %19) #7, !dbg !8232 | |
| store float %20, float* %7, align 4, !dbg !8233 | |
| %21 = load float, float* %6, align 4, !dbg !8234 | |
| %22 = load float, float* %7, align 4, !dbg !8235 | |
| %23 = fdiv float %21, %22, !dbg !8236 | |
| %24 = call float @acosf(float %23) #7, !dbg !8237 | |
| store float %24, float* %3, align 4, !dbg !8238 | |
| br label %26, !dbg !8238 | |
| 25: ; preds = %2 | |
| store float 0.000000e+00, float* %3, align 4, !dbg !8239 | |
| br label %26, !dbg !8239 | |
| 26: ; preds = %25, %18 | |
| %27 = load float, float* %3, align 4, !dbg !8240 | |
| ret float %27, !dbg !8240 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @vector3LengthSquaredf(float* %0) #0 !dbg !8241 { | |
| %2 = alloca float*, align 8 | |
| store float* %0, float** %2, align 8 | |
| call void @llvm.dbg.declare(metadata float** %2, metadata !8244, metadata !DIExpression()), !dbg !8245 | |
| %3 = load float*, float** %2, align 8, !dbg !8246 | |
| %4 = load float*, float** %2, align 8, !dbg !8247 | |
| %5 = call float @vector3Dotf(float* %3, float* %4), !dbg !8248 | |
| ret float %5, !dbg !8249 | |
| } | |
| ; Function Attrs: nounwind | |
| declare dso_local float @sqrtf(float) #5 | |
| ; Function Attrs: nounwind | |
| declare dso_local float @acosf(float) #5 | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float* @vector3Crossf(float* %0, float* %1, float* %2) #0 !dbg !8250 { | |
| %4 = alloca float*, align 8 | |
| %5 = alloca float*, align 8 | |
| %6 = alloca float*, align 8 | |
| store float* %0, float** %4, align 8 | |
| call void @llvm.dbg.declare(metadata float** %4, metadata !8251, metadata !DIExpression()), !dbg !8252 | |
| store float* %1, float** %5, align 8 | |
| call void @llvm.dbg.declare(metadata float** %5, metadata !8253, metadata !DIExpression()), !dbg !8254 | |
| store float* %2, float** %6, align 8 | |
| call void @llvm.dbg.declare(metadata float** %6, metadata !8255, metadata !DIExpression()), !dbg !8256 | |
| %7 = load float*, float** %4, align 8, !dbg !8257 | |
| %8 = getelementptr inbounds float, float* %7, i64 1, !dbg !8257 | |
| %9 = load float, float* %8, align 4, !dbg !8257 | |
| %10 = load float*, float** %5, align 8, !dbg !8258 | |
| %11 = getelementptr inbounds float, float* %10, i64 2, !dbg !8258 | |
| %12 = load float, float* %11, align 4, !dbg !8258 | |
| %13 = fmul float %9, %12, !dbg !8259 | |
| %14 = load float*, float** %4, align 8, !dbg !8260 | |
| %15 = getelementptr inbounds float, float* %14, i64 2, !dbg !8260 | |
| %16 = load float, float* %15, align 4, !dbg !8260 | |
| %17 = load float*, float** %5, align 8, !dbg !8261 | |
| %18 = getelementptr inbounds float, float* %17, i64 1, !dbg !8261 | |
| %19 = load float, float* %18, align 4, !dbg !8261 | |
| %20 = fmul float %16, %19, !dbg !8262 | |
| %21 = fsub float %13, %20, !dbg !8263 | |
| %22 = load float*, float** %6, align 8, !dbg !8264 | |
| %23 = getelementptr inbounds float, float* %22, i64 0, !dbg !8264 | |
| store float %21, float* %23, align 4, !dbg !8265 | |
| %24 = load float*, float** %4, align 8, !dbg !8266 | |
| %25 = getelementptr inbounds float, float* %24, i64 2, !dbg !8266 | |
| %26 = load float, float* %25, align 4, !dbg !8266 | |
| %27 = load float*, float** %5, align 8, !dbg !8267 | |
| %28 = getelementptr inbounds float, float* %27, i64 0, !dbg !8267 | |
| %29 = load float, float* %28, align 4, !dbg !8267 | |
| %30 = fmul float %26, %29, !dbg !8268 | |
| %31 = load float*, float** %4, align 8, !dbg !8269 | |
| %32 = getelementptr inbounds float, float* %31, i64 0, !dbg !8269 | |
| %33 = load float, float* %32, align 4, !dbg !8269 | |
| %34 = load float*, float** %5, align 8, !dbg !8270 | |
| %35 = getelementptr inbounds float, float* %34, i64 2, !dbg !8270 | |
| %36 = load float, float* %35, align 4, !dbg !8270 | |
| %37 = fmul float %33, %36, !dbg !8271 | |
| %38 = fsub float %30, %37, !dbg !8272 | |
| %39 = load float*, float** %6, align 8, !dbg !8273 | |
| %40 = getelementptr inbounds float, float* %39, i64 1, !dbg !8273 | |
| store float %38, float* %40, align 4, !dbg !8274 | |
| %41 = load float*, float** %4, align 8, !dbg !8275 | |
| %42 = getelementptr inbounds float, float* %41, i64 0, !dbg !8275 | |
| %43 = load float, float* %42, align 4, !dbg !8275 | |
| %44 = load float*, float** %5, align 8, !dbg !8276 | |
| %45 = getelementptr inbounds float, float* %44, i64 1, !dbg !8276 | |
| %46 = load float, float* %45, align 4, !dbg !8276 | |
| %47 = fmul float %43, %46, !dbg !8277 | |
| %48 = load float*, float** %4, align 8, !dbg !8278 | |
| %49 = getelementptr inbounds float, float* %48, i64 1, !dbg !8278 | |
| %50 = load float, float* %49, align 4, !dbg !8278 | |
| %51 = load float*, float** %5, align 8, !dbg !8279 | |
| %52 = getelementptr inbounds float, float* %51, i64 0, !dbg !8279 | |
| %53 = load float, float* %52, align 4, !dbg !8279 | |
| %54 = fmul float %50, %53, !dbg !8280 | |
| %55 = fsub float %47, %54, !dbg !8281 | |
| %56 = load float*, float** %6, align 8, !dbg !8282 | |
| %57 = getelementptr inbounds float, float* %56, i64 2, !dbg !8282 | |
| store float %55, float* %57, align 4, !dbg !8283 | |
| %58 = load float*, float** %6, align 8, !dbg !8284 | |
| ret float* %58, !dbg !8285 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @vector3Lengthf(float* %0) #0 !dbg !8286 { | |
| %2 = alloca float*, align 8 | |
| store float* %0, float** %2, align 8 | |
| call void @llvm.dbg.declare(metadata float** %2, metadata !8287, metadata !DIExpression()), !dbg !8288 | |
| %3 = load float*, float** %2, align 8, !dbg !8289 | |
| %4 = call float @vector3LengthSquaredf(float* %3), !dbg !8290 | |
| %5 = call float @sqrtf(float %4) #7, !dbg !8291 | |
| ret float %5, !dbg !8292 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float* @vector3ChangeLengthf(float* %0, float* %1, float %2) #0 !dbg !8293 { | |
| %4 = alloca float*, align 8 | |
| %5 = alloca float*, align 8 | |
| %6 = alloca float*, align 8 | |
| %7 = alloca float, align 4 | |
| %8 = alloca float, align 4 | |
| store float* %0, float** %5, align 8 | |
| call void @llvm.dbg.declare(metadata float** %5, metadata !8296, metadata !DIExpression()), !dbg !8297 | |
| store float* %1, float** %6, align 8 | |
| call void @llvm.dbg.declare(metadata float** %6, metadata !8298, metadata !DIExpression()), !dbg !8299 | |
| store float %2, float* %7, align 4 | |
| call void @llvm.dbg.declare(metadata float* %7, metadata !8300, metadata !DIExpression()), !dbg !8301 | |
| call void @llvm.dbg.declare(metadata float* %8, metadata !8302, metadata !DIExpression()), !dbg !8303 | |
| %9 = load float*, float** %5, align 8, !dbg !8304 | |
| %10 = call float @vector3Lengthf(float* %9), !dbg !8305 | |
| store float %10, float* %8, align 4, !dbg !8303 | |
| %11 = load float, float* %8, align 4, !dbg !8306 | |
| %12 = fcmp ogt float %11, 0.000000e+00, !dbg !8308 | |
| br i1 %12, label %13, label %20, !dbg !8309 | |
| 13: ; preds = %3 | |
| %14 = load float*, float** %5, align 8, !dbg !8310 | |
| %15 = load float*, float** %6, align 8, !dbg !8312 | |
| %16 = load float, float* %7, align 4, !dbg !8313 | |
| %17 = load float, float* %8, align 4, !dbg !8314 | |
| %18 = fdiv float %16, %17, !dbg !8315 | |
| %19 = call float* @vector3Scalef(float* %14, float* %15, float %18), !dbg !8316 | |
| store float* %19, float** %4, align 8, !dbg !8317 | |
| br label %29, !dbg !8317 | |
| 20: ; preds = %3 | |
| %21 = load float, float* %7, align 4, !dbg !8318 | |
| %22 = load float*, float** %6, align 8, !dbg !8320 | |
| %23 = getelementptr inbounds float, float* %22, i64 0, !dbg !8320 | |
| store float %21, float* %23, align 4, !dbg !8321 | |
| %24 = load float*, float** %6, align 8, !dbg !8322 | |
| %25 = getelementptr inbounds float, float* %24, i64 1, !dbg !8322 | |
| store float 0.000000e+00, float* %25, align 4, !dbg !8323 | |
| %26 = load float*, float** %6, align 8, !dbg !8324 | |
| %27 = getelementptr inbounds float, float* %26, i64 2, !dbg !8324 | |
| store float 0.000000e+00, float* %27, align 4, !dbg !8325 | |
| %28 = load float*, float** %6, align 8, !dbg !8326 | |
| store float* %28, float** %4, align 8, !dbg !8327 | |
| br label %29, !dbg !8327 | |
| 29: ; preds = %20, %13 | |
| %30 = load float*, float** %4, align 8, !dbg !8328 | |
| ret float* %30, !dbg !8328 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float* @vector3Scalef(float* %0, float* %1, float %2) #0 !dbg !8329 { | |
| %4 = alloca float*, align 8 | |
| %5 = alloca float*, align 8 | |
| %6 = alloca float, align 4 | |
| %7 = alloca i32, align 4 | |
| store float* %0, float** %4, align 8 | |
| call void @llvm.dbg.declare(metadata float** %4, metadata !8330, metadata !DIExpression()), !dbg !8331 | |
| store float* %1, float** %5, align 8 | |
| call void @llvm.dbg.declare(metadata float** %5, metadata !8332, metadata !DIExpression()), !dbg !8333 | |
| store float %2, float* %6, align 4 | |
| call void @llvm.dbg.declare(metadata float* %6, metadata !8334, metadata !DIExpression()), !dbg !8335 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !8336, metadata !DIExpression()), !dbg !8337 | |
| store i32 0, i32* %7, align 4, !dbg !8338 | |
| br label %8, !dbg !8340 | |
| 8: ; preds = %23, %3 | |
| %9 = load i32, i32* %7, align 4, !dbg !8341 | |
| %10 = icmp slt i32 %9, 3, !dbg !8343 | |
| br i1 %10, label %11, label %26, !dbg !8344 | |
| 11: ; preds = %8 | |
| %12 = load float*, float** %4, align 8, !dbg !8345 | |
| %13 = load i32, i32* %7, align 4, !dbg !8346 | |
| %14 = sext i32 %13 to i64, !dbg !8345 | |
| %15 = getelementptr inbounds float, float* %12, i64 %14, !dbg !8345 | |
| %16 = load float, float* %15, align 4, !dbg !8345 | |
| %17 = load float, float* %6, align 4, !dbg !8347 | |
| %18 = fmul float %16, %17, !dbg !8348 | |
| %19 = load float*, float** %5, align 8, !dbg !8349 | |
| %20 = load i32, i32* %7, align 4, !dbg !8350 | |
| %21 = sext i32 %20 to i64, !dbg !8349 | |
| %22 = getelementptr inbounds float, float* %19, i64 %21, !dbg !8349 | |
| store float %18, float* %22, align 4, !dbg !8351 | |
| br label %23, !dbg !8349 | |
| 23: ; preds = %11 | |
| %24 = load i32, i32* %7, align 4, !dbg !8352 | |
| %25 = add nsw i32 %24, 1, !dbg !8352 | |
| store i32 %25, i32* %7, align 4, !dbg !8352 | |
| br label %8, !dbg !8353, !llvm.loop !8354 | |
| 26: ; preds = %8 | |
| %27 = load float*, float** %5, align 8, !dbg !8356 | |
| ret float* %27, !dbg !8357 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float* @vector3Unitf(float* %0, float* %1) #0 !dbg !8358 { | |
| %3 = alloca float*, align 8 | |
| %4 = alloca float*, align 8 | |
| %5 = alloca float*, align 8 | |
| %6 = alloca float, align 4 | |
| store float* %0, float** %4, align 8 | |
| call void @llvm.dbg.declare(metadata float** %4, metadata !8359, metadata !DIExpression()), !dbg !8360 | |
| store float* %1, float** %5, align 8 | |
| call void @llvm.dbg.declare(metadata float** %5, metadata !8361, metadata !DIExpression()), !dbg !8362 | |
| call void @llvm.dbg.declare(metadata float* %6, metadata !8363, metadata !DIExpression()), !dbg !8364 | |
| %7 = load float*, float** %4, align 8, !dbg !8365 | |
| %8 = call float @vector3Lengthf(float* %7), !dbg !8366 | |
| store float %8, float* %6, align 4, !dbg !8364 | |
| %9 = load float, float* %6, align 4, !dbg !8367 | |
| %10 = fcmp ogt float %9, 0.000000e+00, !dbg !8369 | |
| br i1 %10, label %11, label %17, !dbg !8370 | |
| 11: ; preds = %2 | |
| %12 = load float*, float** %4, align 8, !dbg !8371 | |
| %13 = load float*, float** %5, align 8, !dbg !8372 | |
| %14 = load float, float* %6, align 4, !dbg !8373 | |
| %15 = fdiv float 1.000000e+00, %14, !dbg !8374 | |
| %16 = call float* @vector3Scalef(float* %12, float* %13, float %15), !dbg !8375 | |
| store float* %16, float** %3, align 8, !dbg !8376 | |
| br label %25, !dbg !8376 | |
| 17: ; preds = %2 | |
| %18 = load float*, float** %5, align 8, !dbg !8377 | |
| %19 = getelementptr inbounds float, float* %18, i64 0, !dbg !8377 | |
| store float 1.000000e+00, float* %19, align 4, !dbg !8379 | |
| %20 = load float*, float** %5, align 8, !dbg !8380 | |
| %21 = getelementptr inbounds float, float* %20, i64 1, !dbg !8380 | |
| store float 0.000000e+00, float* %21, align 4, !dbg !8381 | |
| %22 = load float*, float** %5, align 8, !dbg !8382 | |
| %23 = getelementptr inbounds float, float* %22, i64 2, !dbg !8382 | |
| store float 0.000000e+00, float* %23, align 4, !dbg !8383 | |
| %24 = load float*, float** %5, align 8, !dbg !8384 | |
| store float* %24, float** %3, align 8, !dbg !8385 | |
| br label %25, !dbg !8385 | |
| 25: ; preds = %17, %11 | |
| %26 = load float*, float** %3, align 8, !dbg !8386 | |
| ret float* %26, !dbg !8386 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double* @vector3Abs(double* %0, double* %1) #0 !dbg !8387 { | |
| %3 = alloca double*, align 8 | |
| %4 = alloca double*, align 8 | |
| store double* %0, double** %3, align 8 | |
| call void @llvm.dbg.declare(metadata double** %3, metadata !8388, metadata !DIExpression()), !dbg !8389 | |
| store double* %1, double** %4, align 8 | |
| call void @llvm.dbg.declare(metadata double** %4, metadata !8390, metadata !DIExpression()), !dbg !8391 | |
| %5 = load double*, double** %3, align 8, !dbg !8392 | |
| %6 = getelementptr inbounds double, double* %5, i64 0, !dbg !8392 | |
| %7 = load double, double* %6, align 8, !dbg !8392 | |
| %8 = call double @llvm.fabs.f64(double %7), !dbg !8393 | |
| %9 = load double*, double** %4, align 8, !dbg !8394 | |
| %10 = getelementptr inbounds double, double* %9, i64 0, !dbg !8394 | |
| store double %8, double* %10, align 8, !dbg !8395 | |
| %11 = load double*, double** %3, align 8, !dbg !8396 | |
| %12 = getelementptr inbounds double, double* %11, i64 1, !dbg !8396 | |
| %13 = load double, double* %12, align 8, !dbg !8396 | |
| %14 = call double @llvm.fabs.f64(double %13), !dbg !8397 | |
| %15 = load double*, double** %4, align 8, !dbg !8398 | |
| %16 = getelementptr inbounds double, double* %15, i64 1, !dbg !8398 | |
| store double %14, double* %16, align 8, !dbg !8399 | |
| %17 = load double*, double** %3, align 8, !dbg !8400 | |
| %18 = getelementptr inbounds double, double* %17, i64 2, !dbg !8400 | |
| %19 = load double, double* %18, align 8, !dbg !8400 | |
| %20 = call double @llvm.fabs.f64(double %19), !dbg !8401 | |
| %21 = load double*, double** %4, align 8, !dbg !8402 | |
| %22 = getelementptr inbounds double, double* %21, i64 2, !dbg !8402 | |
| store double %20, double* %22, align 8, !dbg !8403 | |
| %23 = load double*, double** %4, align 8, !dbg !8404 | |
| ret double* %23, !dbg !8405 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float* @vector3Absf(float* %0, float* %1) #0 !dbg !8406 { | |
| %3 = alloca float*, align 8 | |
| %4 = alloca float*, align 8 | |
| store float* %0, float** %3, align 8 | |
| call void @llvm.dbg.declare(metadata float** %3, metadata !8407, metadata !DIExpression()), !dbg !8408 | |
| store float* %1, float** %4, align 8 | |
| call void @llvm.dbg.declare(metadata float** %4, metadata !8409, metadata !DIExpression()), !dbg !8410 | |
| %5 = load float*, float** %3, align 8, !dbg !8411 | |
| %6 = getelementptr inbounds float, float* %5, i64 0, !dbg !8411 | |
| %7 = load float, float* %6, align 4, !dbg !8411 | |
| %8 = call float @llvm.fabs.f32(float %7), !dbg !8412 | |
| %9 = load float*, float** %4, align 8, !dbg !8413 | |
| %10 = getelementptr inbounds float, float* %9, i64 0, !dbg !8413 | |
| store float %8, float* %10, align 4, !dbg !8414 | |
| %11 = load float*, float** %3, align 8, !dbg !8415 | |
| %12 = getelementptr inbounds float, float* %11, i64 1, !dbg !8415 | |
| %13 = load float, float* %12, align 4, !dbg !8415 | |
| %14 = call float @llvm.fabs.f32(float %13), !dbg !8416 | |
| %15 = load float*, float** %4, align 8, !dbg !8417 | |
| %16 = getelementptr inbounds float, float* %15, i64 1, !dbg !8417 | |
| store float %14, float* %16, align 4, !dbg !8418 | |
| %17 = load float*, float** %3, align 8, !dbg !8419 | |
| %18 = getelementptr inbounds float, float* %17, i64 2, !dbg !8419 | |
| %19 = load float, float* %18, align 4, !dbg !8419 | |
| %20 = call float @llvm.fabs.f32(float %19), !dbg !8420 | |
| %21 = load float*, float** %4, align 8, !dbg !8421 | |
| %22 = getelementptr inbounds float, float* %21, i64 2, !dbg !8421 | |
| store float %20, float* %22, align 4, !dbg !8422 | |
| %23 = load float*, float** %4, align 8, !dbg !8423 | |
| ret float* %23, !dbg !8424 | |
| } | |
| ; Function Attrs: nounwind readnone speculatable willreturn | |
| declare float @llvm.fabs.f32(float) #2 | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @vectorGetf(%struct.Vectorf_t* %0, i32 %1) #0 !dbg !8425 { | |
| %3 = alloca float, align 4 | |
| %4 = alloca %struct.Vectorf_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| store %struct.Vectorf_t* %0, %struct.Vectorf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %4, metadata !8430, metadata !DIExpression()), !dbg !8431 | |
| store i32 %1, i32* %5, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !8432, metadata !DIExpression()), !dbg !8433 | |
| %6 = load i32, i32* %5, align 4, !dbg !8434 | |
| %7 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8436 | |
| %8 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %7, i32 0, i32 0, !dbg !8437 | |
| %9 = load i32, i32* %8, align 8, !dbg !8437 | |
| %10 = icmp ult i32 %6, %9, !dbg !8438 | |
| br i1 %10, label %11, label %19, !dbg !8439 | |
| 11: ; preds = %2 | |
| %12 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8440 | |
| %13 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %12, i32 0, i32 1, !dbg !8441 | |
| %14 = load float*, float** %13, align 8, !dbg !8441 | |
| %15 = load i32, i32* %5, align 4, !dbg !8442 | |
| %16 = zext i32 %15 to i64, !dbg !8440 | |
| %17 = getelementptr inbounds float, float* %14, i64 %16, !dbg !8440 | |
| %18 = load float, float* %17, align 4, !dbg !8440 | |
| store float %18, float* %3, align 4, !dbg !8443 | |
| br label %20, !dbg !8443 | |
| 19: ; preds = %2 | |
| store float 0.000000e+00, float* %3, align 4, !dbg !8444 | |
| br label %20, !dbg !8444 | |
| 20: ; preds = %19, %11 | |
| %21 = load float, float* %3, align 4, !dbg !8445 | |
| ret float %21, !dbg !8445 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vectorf_t* @vectorSetf(%struct.Vectorf_t* %0, i32 %1, float %2) #0 !dbg !8446 { | |
| %4 = alloca %struct.Vectorf_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca float, align 4 | |
| store %struct.Vectorf_t* %0, %struct.Vectorf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %4, metadata !8449, metadata !DIExpression()), !dbg !8450 | |
| store i32 %1, i32* %5, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !8451, metadata !DIExpression()), !dbg !8452 | |
| store float %2, float* %6, align 4 | |
| call void @llvm.dbg.declare(metadata float* %6, metadata !8453, metadata !DIExpression()), !dbg !8454 | |
| %7 = load i32, i32* %5, align 4, !dbg !8455 | |
| %8 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8457 | |
| %9 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %8, i32 0, i32 0, !dbg !8458 | |
| %10 = load i32, i32* %9, align 8, !dbg !8458 | |
| %11 = icmp ult i32 %7, %10, !dbg !8459 | |
| br i1 %11, label %12, label %20, !dbg !8460 | |
| 12: ; preds = %3 | |
| %13 = load float, float* %6, align 4, !dbg !8461 | |
| %14 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8462 | |
| %15 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %14, i32 0, i32 1, !dbg !8463 | |
| %16 = load float*, float** %15, align 8, !dbg !8463 | |
| %17 = load i32, i32* %5, align 4, !dbg !8464 | |
| %18 = zext i32 %17 to i64, !dbg !8462 | |
| %19 = getelementptr inbounds float, float* %16, i64 %18, !dbg !8462 | |
| store float %13, float* %19, align 4, !dbg !8465 | |
| br label %20, !dbg !8462 | |
| 20: ; preds = %12, %3 | |
| %21 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8466 | |
| ret %struct.Vectorf_t* %21, !dbg !8467 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vectorf_t* @vectorAddToElementf(%struct.Vectorf_t* %0, i32 %1, float %2) #0 !dbg !8468 { | |
| %4 = alloca %struct.Vectorf_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca float, align 4 | |
| store %struct.Vectorf_t* %0, %struct.Vectorf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %4, metadata !8469, metadata !DIExpression()), !dbg !8470 | |
| store i32 %1, i32* %5, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !8471, metadata !DIExpression()), !dbg !8472 | |
| store float %2, float* %6, align 4 | |
| call void @llvm.dbg.declare(metadata float* %6, metadata !8473, metadata !DIExpression()), !dbg !8474 | |
| %7 = load i32, i32* %5, align 4, !dbg !8475 | |
| %8 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8477 | |
| %9 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %8, i32 0, i32 0, !dbg !8478 | |
| %10 = load i32, i32* %9, align 8, !dbg !8478 | |
| %11 = icmp ult i32 %7, %10, !dbg !8479 | |
| br i1 %11, label %12, label %22, !dbg !8480 | |
| 12: ; preds = %3 | |
| %13 = load float, float* %6, align 4, !dbg !8481 | |
| %14 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8482 | |
| %15 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %14, i32 0, i32 1, !dbg !8483 | |
| %16 = load float*, float** %15, align 8, !dbg !8483 | |
| %17 = load i32, i32* %5, align 4, !dbg !8484 | |
| %18 = zext i32 %17 to i64, !dbg !8482 | |
| %19 = getelementptr inbounds float, float* %16, i64 %18, !dbg !8482 | |
| %20 = load float, float* %19, align 4, !dbg !8485 | |
| %21 = fadd float %20, %13, !dbg !8485 | |
| store float %21, float* %19, align 4, !dbg !8485 | |
| br label %22, !dbg !8482 | |
| 22: ; preds = %12, %3 | |
| %23 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8486 | |
| ret %struct.Vectorf_t* %23, !dbg !8487 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vectorf_t* @vectorSetAllf(%struct.Vectorf_t* %0, float %1) #0 !dbg !8488 { | |
| %3 = alloca %struct.Vectorf_t*, align 8 | |
| %4 = alloca float, align 4 | |
| %5 = alloca i32, align 4 | |
| store %struct.Vectorf_t* %0, %struct.Vectorf_t** %3, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %3, metadata !8491, metadata !DIExpression()), !dbg !8492 | |
| store float %1, float* %4, align 4 | |
| call void @llvm.dbg.declare(metadata float* %4, metadata !8493, metadata !DIExpression()), !dbg !8494 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !8495, metadata !DIExpression()), !dbg !8496 | |
| store i32 0, i32* %5, align 4, !dbg !8497 | |
| br label %6, !dbg !8499 | |
| 6: ; preds = %20, %2 | |
| %7 = load i32, i32* %5, align 4, !dbg !8500 | |
| %8 = load %struct.Vectorf_t*, %struct.Vectorf_t** %3, align 8, !dbg !8502 | |
| %9 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %8, i32 0, i32 0, !dbg !8503 | |
| %10 = load i32, i32* %9, align 8, !dbg !8503 | |
| %11 = icmp ult i32 %7, %10, !dbg !8504 | |
| br i1 %11, label %12, label %23, !dbg !8505 | |
| 12: ; preds = %6 | |
| %13 = load float, float* %4, align 4, !dbg !8506 | |
| %14 = load %struct.Vectorf_t*, %struct.Vectorf_t** %3, align 8, !dbg !8507 | |
| %15 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %14, i32 0, i32 1, !dbg !8508 | |
| %16 = load float*, float** %15, align 8, !dbg !8508 | |
| %17 = load i32, i32* %5, align 4, !dbg !8509 | |
| %18 = zext i32 %17 to i64, !dbg !8507 | |
| %19 = getelementptr inbounds float, float* %16, i64 %18, !dbg !8507 | |
| store float %13, float* %19, align 4, !dbg !8510 | |
| br label %20, !dbg !8507 | |
| 20: ; preds = %12 | |
| %21 = load i32, i32* %5, align 4, !dbg !8511 | |
| %22 = add i32 %21, 1, !dbg !8511 | |
| store i32 %22, i32* %5, align 4, !dbg !8511 | |
| br label %6, !dbg !8512, !llvm.loop !8513 | |
| 23: ; preds = %6 | |
| %24 = load %struct.Vectorf_t*, %struct.Vectorf_t** %3, align 8, !dbg !8515 | |
| ret %struct.Vectorf_t* %24, !dbg !8516 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vectorf_t* @vectorAllocatef(i32 %0) #0 !dbg !8517 { | |
| %2 = alloca i32, align 4 | |
| %3 = alloca %struct.Vectorf_t*, align 8 | |
| %4 = alloca i8*, align 8 | |
| store i32 %0, i32* %2, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %2, metadata !8520, metadata !DIExpression()), !dbg !8521 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %3, metadata !8522, metadata !DIExpression()), !dbg !8523 | |
| %5 = load i32, i32* %2, align 4, !dbg !8524 | |
| %6 = zext i32 %5 to i64, !dbg !8524 | |
| %7 = mul i64 4, %6, !dbg !8525 | |
| %8 = add i64 16, %7, !dbg !8526 | |
| %9 = call noalias i8* @malloc(i64 %8) #7, !dbg !8527 | |
| %10 = bitcast i8* %9 to %struct.Vectorf_t*, !dbg !8528 | |
| store %struct.Vectorf_t* %10, %struct.Vectorf_t** %3, align 8, !dbg !8523 | |
| %11 = load %struct.Vectorf_t*, %struct.Vectorf_t** %3, align 8, !dbg !8529 | |
| %12 = icmp ne %struct.Vectorf_t* %11, null, !dbg !8529 | |
| br i1 %12, label %13, label %27, !dbg !8531 | |
| 13: ; preds = %1 | |
| call void @llvm.dbg.declare(metadata i8** %4, metadata !8532, metadata !DIExpression()), !dbg !8534 | |
| %14 = load %struct.Vectorf_t*, %struct.Vectorf_t** %3, align 8, !dbg !8535 | |
| %15 = bitcast %struct.Vectorf_t* %14 to i8*, !dbg !8536 | |
| store i8* %15, i8** %4, align 8, !dbg !8534 | |
| %16 = load i8*, i8** %4, align 8, !dbg !8537 | |
| %17 = getelementptr inbounds i8, i8* %16, i64 16, !dbg !8537 | |
| store i8* %17, i8** %4, align 8, !dbg !8537 | |
| %18 = load i8*, i8** %4, align 8, !dbg !8538 | |
| %19 = bitcast i8* %18 to float*, !dbg !8539 | |
| %20 = load %struct.Vectorf_t*, %struct.Vectorf_t** %3, align 8, !dbg !8540 | |
| %21 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %20, i32 0, i32 1, !dbg !8541 | |
| store float* %19, float** %21, align 8, !dbg !8542 | |
| %22 = load i32, i32* %2, align 4, !dbg !8543 | |
| %23 = load %struct.Vectorf_t*, %struct.Vectorf_t** %3, align 8, !dbg !8544 | |
| %24 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %23, i32 0, i32 0, !dbg !8545 | |
| store i32 %22, i32* %24, align 8, !dbg !8546 | |
| %25 = load %struct.Vectorf_t*, %struct.Vectorf_t** %3, align 8, !dbg !8547 | |
| %26 = call %struct.Vectorf_t* @vectorZerof(%struct.Vectorf_t* %25), !dbg !8548 | |
| br label %27, !dbg !8549 | |
| 27: ; preds = %13, %1 | |
| %28 = load %struct.Vectorf_t*, %struct.Vectorf_t** %3, align 8, !dbg !8550 | |
| ret %struct.Vectorf_t* %28, !dbg !8551 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vectorf_t* @vectorZerof(%struct.Vectorf_t* %0) #0 !dbg !8552 { | |
| %2 = alloca %struct.Vectorf_t*, align 8 | |
| store %struct.Vectorf_t* %0, %struct.Vectorf_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %2, metadata !8555, metadata !DIExpression()), !dbg !8556 | |
| %3 = load %struct.Vectorf_t*, %struct.Vectorf_t** %2, align 8, !dbg !8557 | |
| %4 = call %struct.Vectorf_t* @vectorSetAllf(%struct.Vectorf_t* %3, float 0.000000e+00), !dbg !8558 | |
| ret %struct.Vectorf_t* %4, !dbg !8559 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vectorf_t* @vectorChangeAllocateSizef(%struct.Vectorf_t* %0, i32 %1, float %2) #0 !dbg !8560 { | |
| %4 = alloca %struct.Vectorf_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca float, align 4 | |
| %7 = alloca %struct.Vectorf_t*, align 8 | |
| %8 = alloca i8*, align 8 | |
| store %struct.Vectorf_t* %0, %struct.Vectorf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %4, metadata !8561, metadata !DIExpression()), !dbg !8562 | |
| store i32 %1, i32* %5, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !8563, metadata !DIExpression()), !dbg !8564 | |
| store float %2, float* %6, align 4 | |
| call void @llvm.dbg.declare(metadata float* %6, metadata !8565, metadata !DIExpression()), !dbg !8566 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %7, metadata !8567, metadata !DIExpression()), !dbg !8568 | |
| %9 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8569 | |
| %10 = bitcast %struct.Vectorf_t* %9 to i8*, !dbg !8569 | |
| %11 = load i32, i32* %5, align 4, !dbg !8570 | |
| %12 = zext i32 %11 to i64, !dbg !8570 | |
| %13 = mul i64 4, %12, !dbg !8571 | |
| %14 = add i64 16, %13, !dbg !8572 | |
| %15 = call i8* @realloc(i8* %10, i64 %14) #7, !dbg !8573 | |
| %16 = bitcast i8* %15 to %struct.Vectorf_t*, !dbg !8574 | |
| store %struct.Vectorf_t* %16, %struct.Vectorf_t** %7, align 8, !dbg !8568 | |
| %17 = load %struct.Vectorf_t*, %struct.Vectorf_t** %7, align 8, !dbg !8575 | |
| %18 = icmp ne %struct.Vectorf_t* %17, null, !dbg !8575 | |
| br i1 %18, label %19, label %31, !dbg !8577 | |
| 19: ; preds = %3 | |
| call void @llvm.dbg.declare(metadata i8** %8, metadata !8578, metadata !DIExpression()), !dbg !8580 | |
| %20 = load %struct.Vectorf_t*, %struct.Vectorf_t** %7, align 8, !dbg !8581 | |
| %21 = bitcast %struct.Vectorf_t* %20 to i8*, !dbg !8582 | |
| store i8* %21, i8** %8, align 8, !dbg !8580 | |
| %22 = load i8*, i8** %8, align 8, !dbg !8583 | |
| %23 = getelementptr inbounds i8, i8* %22, i64 16, !dbg !8583 | |
| store i8* %23, i8** %8, align 8, !dbg !8583 | |
| %24 = load i8*, i8** %8, align 8, !dbg !8584 | |
| %25 = bitcast i8* %24 to float*, !dbg !8585 | |
| %26 = load %struct.Vectorf_t*, %struct.Vectorf_t** %7, align 8, !dbg !8586 | |
| %27 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %26, i32 0, i32 1, !dbg !8587 | |
| store float* %25, float** %27, align 8, !dbg !8588 | |
| %28 = load %struct.Vectorf_t*, %struct.Vectorf_t** %7, align 8, !dbg !8589 | |
| %29 = load i32, i32* %5, align 4, !dbg !8590 | |
| %30 = load float, float* %6, align 4, !dbg !8591 | |
| call void @vectorChangeSizef(%struct.Vectorf_t* %28, i32 %29, float %30), !dbg !8592 | |
| br label %31, !dbg !8593 | |
| 31: ; preds = %19, %3 | |
| %32 = load %struct.Vectorf_t*, %struct.Vectorf_t** %7, align 8, !dbg !8594 | |
| ret %struct.Vectorf_t* %32, !dbg !8595 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @vectorChangeSizef(%struct.Vectorf_t* %0, i32 %1, float %2) #0 !dbg !8596 { | |
| %4 = alloca %struct.Vectorf_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca float, align 4 | |
| %7 = alloca i32, align 4 | |
| store %struct.Vectorf_t* %0, %struct.Vectorf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %4, metadata !8599, metadata !DIExpression()), !dbg !8600 | |
| store i32 %1, i32* %5, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !8601, metadata !DIExpression()), !dbg !8602 | |
| store float %2, float* %6, align 4 | |
| call void @llvm.dbg.declare(metadata float* %6, metadata !8603, metadata !DIExpression()), !dbg !8604 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !8605, metadata !DIExpression()), !dbg !8606 | |
| %8 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8607 | |
| %9 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %8, i32 0, i32 0, !dbg !8609 | |
| %10 = load i32, i32* %9, align 8, !dbg !8609 | |
| store i32 %10, i32* %7, align 4, !dbg !8610 | |
| br label %11, !dbg !8611 | |
| 11: ; preds = %23, %3 | |
| %12 = load i32, i32* %7, align 4, !dbg !8612 | |
| %13 = load i32, i32* %5, align 4, !dbg !8614 | |
| %14 = icmp ult i32 %12, %13, !dbg !8615 | |
| br i1 %14, label %15, label %26, !dbg !8616 | |
| 15: ; preds = %11 | |
| %16 = load float, float* %6, align 4, !dbg !8617 | |
| %17 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8618 | |
| %18 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %17, i32 0, i32 1, !dbg !8619 | |
| %19 = load float*, float** %18, align 8, !dbg !8619 | |
| %20 = load i32, i32* %7, align 4, !dbg !8620 | |
| %21 = zext i32 %20 to i64, !dbg !8618 | |
| %22 = getelementptr inbounds float, float* %19, i64 %21, !dbg !8618 | |
| store float %16, float* %22, align 4, !dbg !8621 | |
| br label %23, !dbg !8618 | |
| 23: ; preds = %15 | |
| %24 = load i32, i32* %7, align 4, !dbg !8622 | |
| %25 = add i32 %24, 1, !dbg !8622 | |
| store i32 %25, i32* %7, align 4, !dbg !8622 | |
| br label %11, !dbg !8623, !llvm.loop !8624 | |
| 26: ; preds = %11 | |
| %27 = load i32, i32* %5, align 4, !dbg !8626 | |
| %28 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8627 | |
| %29 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %28, i32 0, i32 0, !dbg !8628 | |
| store i32 %27, i32* %29, align 8, !dbg !8629 | |
| ret void, !dbg !8630 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vectorf_t* @vectorCopyf(%struct.Vectorf_t* %0, %struct.Vectorf_t* %1) #0 !dbg !8631 { | |
| %3 = alloca %struct.Vectorf_t*, align 8 | |
| %4 = alloca %struct.Vectorf_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca i32, align 4 | |
| store %struct.Vectorf_t* %0, %struct.Vectorf_t** %3, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %3, metadata !8634, metadata !DIExpression()), !dbg !8635 | |
| store %struct.Vectorf_t* %1, %struct.Vectorf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %4, metadata !8636, metadata !DIExpression()), !dbg !8637 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !8638, metadata !DIExpression()), !dbg !8639 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !8640, metadata !DIExpression()), !dbg !8641 | |
| %7 = load %struct.Vectorf_t*, %struct.Vectorf_t** %3, align 8, !dbg !8642 | |
| %8 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %7, i32 0, i32 0, !dbg !8642 | |
| %9 = load i32, i32* %8, align 8, !dbg !8642 | |
| %10 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8642 | |
| %11 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %10, i32 0, i32 0, !dbg !8642 | |
| %12 = load i32, i32* %11, align 8, !dbg !8642 | |
| %13 = icmp ult i32 %9, %12, !dbg !8642 | |
| br i1 %13, label %14, label %18, !dbg !8642 | |
| 14: ; preds = %2 | |
| %15 = load %struct.Vectorf_t*, %struct.Vectorf_t** %3, align 8, !dbg !8642 | |
| %16 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %15, i32 0, i32 0, !dbg !8642 | |
| %17 = load i32, i32* %16, align 8, !dbg !8642 | |
| br label %22, !dbg !8642 | |
| 18: ; preds = %2 | |
| %19 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8642 | |
| %20 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %19, i32 0, i32 0, !dbg !8642 | |
| %21 = load i32, i32* %20, align 8, !dbg !8642 | |
| br label %22, !dbg !8642 | |
| 22: ; preds = %18, %14 | |
| %23 = phi i32 [ %17, %14 ], [ %21, %18 ], !dbg !8642 | |
| store i32 %23, i32* %6, align 4, !dbg !8641 | |
| store i32 0, i32* %5, align 4, !dbg !8643 | |
| br label %24, !dbg !8645 | |
| 24: ; preds = %42, %22 | |
| %25 = load i32, i32* %5, align 4, !dbg !8646 | |
| %26 = load i32, i32* %6, align 4, !dbg !8648 | |
| %27 = icmp ult i32 %25, %26, !dbg !8649 | |
| br i1 %27, label %28, label %45, !dbg !8650 | |
| 28: ; preds = %24 | |
| %29 = load %struct.Vectorf_t*, %struct.Vectorf_t** %3, align 8, !dbg !8651 | |
| %30 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %29, i32 0, i32 1, !dbg !8652 | |
| %31 = load float*, float** %30, align 8, !dbg !8652 | |
| %32 = load i32, i32* %5, align 4, !dbg !8653 | |
| %33 = zext i32 %32 to i64, !dbg !8651 | |
| %34 = getelementptr inbounds float, float* %31, i64 %33, !dbg !8651 | |
| %35 = load float, float* %34, align 4, !dbg !8651 | |
| %36 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8654 | |
| %37 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %36, i32 0, i32 1, !dbg !8655 | |
| %38 = load float*, float** %37, align 8, !dbg !8655 | |
| %39 = load i32, i32* %5, align 4, !dbg !8656 | |
| %40 = zext i32 %39 to i64, !dbg !8654 | |
| %41 = getelementptr inbounds float, float* %38, i64 %40, !dbg !8654 | |
| store float %35, float* %41, align 4, !dbg !8657 | |
| br label %42, !dbg !8654 | |
| 42: ; preds = %28 | |
| %43 = load i32, i32* %5, align 4, !dbg !8658 | |
| %44 = add i32 %43, 1, !dbg !8658 | |
| store i32 %44, i32* %5, align 4, !dbg !8658 | |
| br label %24, !dbg !8659, !llvm.loop !8660 | |
| 45: ; preds = %24 | |
| %46 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8662 | |
| ret %struct.Vectorf_t* %46, !dbg !8663 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vectorf_t* @vectorMultiplyAccumulatef(%struct.Vectorf_t* %0, %struct.Vectorf_t* %1, float %2, %struct.Vectorf_t* %3) #0 !dbg !8664 { | |
| %5 = alloca %struct.Vectorf_t*, align 8 | |
| %6 = alloca %struct.Vectorf_t*, align 8 | |
| %7 = alloca float, align 4 | |
| %8 = alloca %struct.Vectorf_t*, align 8 | |
| %9 = alloca i32, align 4 | |
| %10 = alloca i32, align 4 | |
| store %struct.Vectorf_t* %0, %struct.Vectorf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %5, metadata !8667, metadata !DIExpression()), !dbg !8668 | |
| store %struct.Vectorf_t* %1, %struct.Vectorf_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %6, metadata !8669, metadata !DIExpression()), !dbg !8670 | |
| store float %2, float* %7, align 4 | |
| call void @llvm.dbg.declare(metadata float* %7, metadata !8671, metadata !DIExpression()), !dbg !8672 | |
| store %struct.Vectorf_t* %3, %struct.Vectorf_t** %8, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %8, metadata !8673, metadata !DIExpression()), !dbg !8674 | |
| call void @llvm.dbg.declare(metadata i32* %9, metadata !8675, metadata !DIExpression()), !dbg !8676 | |
| call void @llvm.dbg.declare(metadata i32* %10, metadata !8677, metadata !DIExpression()), !dbg !8678 | |
| %11 = load %struct.Vectorf_t*, %struct.Vectorf_t** %8, align 8, !dbg !8679 | |
| %12 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %11, i32 0, i32 0, !dbg !8679 | |
| %13 = load i32, i32* %12, align 8, !dbg !8679 | |
| %14 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8679 | |
| %15 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %14, i32 0, i32 0, !dbg !8679 | |
| %16 = load i32, i32* %15, align 8, !dbg !8679 | |
| %17 = load %struct.Vectorf_t*, %struct.Vectorf_t** %6, align 8, !dbg !8679 | |
| %18 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %17, i32 0, i32 0, !dbg !8679 | |
| %19 = load i32, i32* %18, align 8, !dbg !8679 | |
| %20 = icmp ult i32 %16, %19, !dbg !8679 | |
| br i1 %20, label %21, label %25, !dbg !8679 | |
| 21: ; preds = %4 | |
| %22 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8679 | |
| %23 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %22, i32 0, i32 0, !dbg !8679 | |
| %24 = load i32, i32* %23, align 8, !dbg !8679 | |
| br label %29, !dbg !8679 | |
| 25: ; preds = %4 | |
| %26 = load %struct.Vectorf_t*, %struct.Vectorf_t** %6, align 8, !dbg !8679 | |
| %27 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %26, i32 0, i32 0, !dbg !8679 | |
| %28 = load i32, i32* %27, align 8, !dbg !8679 | |
| br label %29, !dbg !8679 | |
| 29: ; preds = %25, %21 | |
| %30 = phi i32 [ %24, %21 ], [ %28, %25 ], !dbg !8679 | |
| %31 = icmp ult i32 %13, %30, !dbg !8679 | |
| br i1 %31, label %32, label %36, !dbg !8679 | |
| 32: ; preds = %29 | |
| %33 = load %struct.Vectorf_t*, %struct.Vectorf_t** %8, align 8, !dbg !8679 | |
| %34 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %33, i32 0, i32 0, !dbg !8679 | |
| %35 = load i32, i32* %34, align 8, !dbg !8679 | |
| br label %54, !dbg !8679 | |
| 36: ; preds = %29 | |
| %37 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8679 | |
| %38 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %37, i32 0, i32 0, !dbg !8679 | |
| %39 = load i32, i32* %38, align 8, !dbg !8679 | |
| %40 = load %struct.Vectorf_t*, %struct.Vectorf_t** %6, align 8, !dbg !8679 | |
| %41 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %40, i32 0, i32 0, !dbg !8679 | |
| %42 = load i32, i32* %41, align 8, !dbg !8679 | |
| %43 = icmp ult i32 %39, %42, !dbg !8679 | |
| br i1 %43, label %44, label %48, !dbg !8679 | |
| 44: ; preds = %36 | |
| %45 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8679 | |
| %46 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %45, i32 0, i32 0, !dbg !8679 | |
| %47 = load i32, i32* %46, align 8, !dbg !8679 | |
| br label %52, !dbg !8679 | |
| 48: ; preds = %36 | |
| %49 = load %struct.Vectorf_t*, %struct.Vectorf_t** %6, align 8, !dbg !8679 | |
| %50 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %49, i32 0, i32 0, !dbg !8679 | |
| %51 = load i32, i32* %50, align 8, !dbg !8679 | |
| br label %52, !dbg !8679 | |
| 52: ; preds = %48, %44 | |
| %53 = phi i32 [ %47, %44 ], [ %51, %48 ], !dbg !8679 | |
| br label %54, !dbg !8679 | |
| 54: ; preds = %52, %32 | |
| %55 = phi i32 [ %35, %32 ], [ %53, %52 ], !dbg !8679 | |
| store i32 %55, i32* %10, align 4, !dbg !8678 | |
| store i32 0, i32* %9, align 4, !dbg !8680 | |
| br label %56, !dbg !8682 | |
| 56: ; preds = %84, %54 | |
| %57 = load i32, i32* %9, align 4, !dbg !8683 | |
| %58 = load i32, i32* %10, align 4, !dbg !8685 | |
| %59 = icmp ult i32 %57, %58, !dbg !8686 | |
| br i1 %59, label %60, label %87, !dbg !8687 | |
| 60: ; preds = %56 | |
| %61 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8688 | |
| %62 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %61, i32 0, i32 1, !dbg !8689 | |
| %63 = load float*, float** %62, align 8, !dbg !8689 | |
| %64 = load i32, i32* %9, align 4, !dbg !8690 | |
| %65 = zext i32 %64 to i64, !dbg !8688 | |
| %66 = getelementptr inbounds float, float* %63, i64 %65, !dbg !8688 | |
| %67 = load float, float* %66, align 4, !dbg !8688 | |
| %68 = load %struct.Vectorf_t*, %struct.Vectorf_t** %6, align 8, !dbg !8691 | |
| %69 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %68, i32 0, i32 1, !dbg !8692 | |
| %70 = load float*, float** %69, align 8, !dbg !8692 | |
| %71 = load i32, i32* %9, align 4, !dbg !8693 | |
| %72 = zext i32 %71 to i64, !dbg !8691 | |
| %73 = getelementptr inbounds float, float* %70, i64 %72, !dbg !8691 | |
| %74 = load float, float* %73, align 4, !dbg !8691 | |
| %75 = load float, float* %7, align 4, !dbg !8694 | |
| %76 = fmul float %74, %75, !dbg !8695 | |
| %77 = fadd float %67, %76, !dbg !8696 | |
| %78 = load %struct.Vectorf_t*, %struct.Vectorf_t** %8, align 8, !dbg !8697 | |
| %79 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %78, i32 0, i32 1, !dbg !8698 | |
| %80 = load float*, float** %79, align 8, !dbg !8698 | |
| %81 = load i32, i32* %9, align 4, !dbg !8699 | |
| %82 = zext i32 %81 to i64, !dbg !8697 | |
| %83 = getelementptr inbounds float, float* %80, i64 %82, !dbg !8697 | |
| store float %77, float* %83, align 4, !dbg !8700 | |
| br label %84, !dbg !8697 | |
| 84: ; preds = %60 | |
| %85 = load i32, i32* %9, align 4, !dbg !8701 | |
| %86 = add i32 %85, 1, !dbg !8701 | |
| store i32 %86, i32* %9, align 4, !dbg !8701 | |
| br label %56, !dbg !8702, !llvm.loop !8703 | |
| 87: ; preds = %56 | |
| %88 = load %struct.Vectorf_t*, %struct.Vectorf_t** %8, align 8, !dbg !8705 | |
| ret %struct.Vectorf_t* %88, !dbg !8706 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vectorf_t* @vectorSumf(%struct.Vectorf_t* %0, %struct.Vectorf_t* %1, %struct.Vectorf_t* %2) #0 !dbg !8707 { | |
| %4 = alloca %struct.Vectorf_t*, align 8 | |
| %5 = alloca %struct.Vectorf_t*, align 8 | |
| %6 = alloca %struct.Vectorf_t*, align 8 | |
| %7 = alloca i32, align 4 | |
| %8 = alloca i32, align 4 | |
| store %struct.Vectorf_t* %0, %struct.Vectorf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %4, metadata !8710, metadata !DIExpression()), !dbg !8711 | |
| store %struct.Vectorf_t* %1, %struct.Vectorf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %5, metadata !8712, metadata !DIExpression()), !dbg !8713 | |
| store %struct.Vectorf_t* %2, %struct.Vectorf_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %6, metadata !8714, metadata !DIExpression()), !dbg !8715 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !8716, metadata !DIExpression()), !dbg !8717 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !8718, metadata !DIExpression()), !dbg !8719 | |
| %9 = load %struct.Vectorf_t*, %struct.Vectorf_t** %6, align 8, !dbg !8720 | |
| %10 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %9, i32 0, i32 0, !dbg !8720 | |
| %11 = load i32, i32* %10, align 8, !dbg !8720 | |
| %12 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8720 | |
| %13 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %12, i32 0, i32 0, !dbg !8720 | |
| %14 = load i32, i32* %13, align 8, !dbg !8720 | |
| %15 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8720 | |
| %16 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %15, i32 0, i32 0, !dbg !8720 | |
| %17 = load i32, i32* %16, align 8, !dbg !8720 | |
| %18 = icmp ult i32 %14, %17, !dbg !8720 | |
| br i1 %18, label %19, label %23, !dbg !8720 | |
| 19: ; preds = %3 | |
| %20 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8720 | |
| %21 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %20, i32 0, i32 0, !dbg !8720 | |
| %22 = load i32, i32* %21, align 8, !dbg !8720 | |
| br label %27, !dbg !8720 | |
| 23: ; preds = %3 | |
| %24 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8720 | |
| %25 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %24, i32 0, i32 0, !dbg !8720 | |
| %26 = load i32, i32* %25, align 8, !dbg !8720 | |
| br label %27, !dbg !8720 | |
| 27: ; preds = %23, %19 | |
| %28 = phi i32 [ %22, %19 ], [ %26, %23 ], !dbg !8720 | |
| %29 = icmp ult i32 %11, %28, !dbg !8720 | |
| br i1 %29, label %30, label %34, !dbg !8720 | |
| 30: ; preds = %27 | |
| %31 = load %struct.Vectorf_t*, %struct.Vectorf_t** %6, align 8, !dbg !8720 | |
| %32 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %31, i32 0, i32 0, !dbg !8720 | |
| %33 = load i32, i32* %32, align 8, !dbg !8720 | |
| br label %52, !dbg !8720 | |
| 34: ; preds = %27 | |
| %35 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8720 | |
| %36 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %35, i32 0, i32 0, !dbg !8720 | |
| %37 = load i32, i32* %36, align 8, !dbg !8720 | |
| %38 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8720 | |
| %39 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %38, i32 0, i32 0, !dbg !8720 | |
| %40 = load i32, i32* %39, align 8, !dbg !8720 | |
| %41 = icmp ult i32 %37, %40, !dbg !8720 | |
| br i1 %41, label %42, label %46, !dbg !8720 | |
| 42: ; preds = %34 | |
| %43 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8720 | |
| %44 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %43, i32 0, i32 0, !dbg !8720 | |
| %45 = load i32, i32* %44, align 8, !dbg !8720 | |
| br label %50, !dbg !8720 | |
| 46: ; preds = %34 | |
| %47 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8720 | |
| %48 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %47, i32 0, i32 0, !dbg !8720 | |
| %49 = load i32, i32* %48, align 8, !dbg !8720 | |
| br label %50, !dbg !8720 | |
| 50: ; preds = %46, %42 | |
| %51 = phi i32 [ %45, %42 ], [ %49, %46 ], !dbg !8720 | |
| br label %52, !dbg !8720 | |
| 52: ; preds = %50, %30 | |
| %53 = phi i32 [ %33, %30 ], [ %51, %50 ], !dbg !8720 | |
| store i32 %53, i32* %8, align 4, !dbg !8719 | |
| store i32 0, i32* %7, align 4, !dbg !8721 | |
| br label %54, !dbg !8723 | |
| 54: ; preds = %80, %52 | |
| %55 = load i32, i32* %7, align 4, !dbg !8724 | |
| %56 = load i32, i32* %8, align 4, !dbg !8726 | |
| %57 = icmp ult i32 %55, %56, !dbg !8727 | |
| br i1 %57, label %58, label %83, !dbg !8728 | |
| 58: ; preds = %54 | |
| %59 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8729 | |
| %60 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %59, i32 0, i32 1, !dbg !8730 | |
| %61 = load float*, float** %60, align 8, !dbg !8730 | |
| %62 = load i32, i32* %7, align 4, !dbg !8731 | |
| %63 = zext i32 %62 to i64, !dbg !8729 | |
| %64 = getelementptr inbounds float, float* %61, i64 %63, !dbg !8729 | |
| %65 = load float, float* %64, align 4, !dbg !8729 | |
| %66 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8732 | |
| %67 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %66, i32 0, i32 1, !dbg !8733 | |
| %68 = load float*, float** %67, align 8, !dbg !8733 | |
| %69 = load i32, i32* %7, align 4, !dbg !8734 | |
| %70 = zext i32 %69 to i64, !dbg !8732 | |
| %71 = getelementptr inbounds float, float* %68, i64 %70, !dbg !8732 | |
| %72 = load float, float* %71, align 4, !dbg !8732 | |
| %73 = fadd float %65, %72, !dbg !8735 | |
| %74 = load %struct.Vectorf_t*, %struct.Vectorf_t** %6, align 8, !dbg !8736 | |
| %75 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %74, i32 0, i32 1, !dbg !8737 | |
| %76 = load float*, float** %75, align 8, !dbg !8737 | |
| %77 = load i32, i32* %7, align 4, !dbg !8738 | |
| %78 = zext i32 %77 to i64, !dbg !8736 | |
| %79 = getelementptr inbounds float, float* %76, i64 %78, !dbg !8736 | |
| store float %73, float* %79, align 4, !dbg !8739 | |
| br label %80, !dbg !8736 | |
| 80: ; preds = %58 | |
| %81 = load i32, i32* %7, align 4, !dbg !8740 | |
| %82 = add i32 %81, 1, !dbg !8740 | |
| store i32 %82, i32* %7, align 4, !dbg !8740 | |
| br label %54, !dbg !8741, !llvm.loop !8742 | |
| 83: ; preds = %54 | |
| %84 = load %struct.Vectorf_t*, %struct.Vectorf_t** %6, align 8, !dbg !8744 | |
| ret %struct.Vectorf_t* %84, !dbg !8745 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vectorf_t* @vectorDifferencef(%struct.Vectorf_t* %0, %struct.Vectorf_t* %1, %struct.Vectorf_t* %2) #0 !dbg !8746 { | |
| %4 = alloca %struct.Vectorf_t*, align 8 | |
| %5 = alloca %struct.Vectorf_t*, align 8 | |
| %6 = alloca %struct.Vectorf_t*, align 8 | |
| %7 = alloca i32, align 4 | |
| %8 = alloca i32, align 4 | |
| store %struct.Vectorf_t* %0, %struct.Vectorf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %4, metadata !8747, metadata !DIExpression()), !dbg !8748 | |
| store %struct.Vectorf_t* %1, %struct.Vectorf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %5, metadata !8749, metadata !DIExpression()), !dbg !8750 | |
| store %struct.Vectorf_t* %2, %struct.Vectorf_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %6, metadata !8751, metadata !DIExpression()), !dbg !8752 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !8753, metadata !DIExpression()), !dbg !8754 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !8755, metadata !DIExpression()), !dbg !8756 | |
| %9 = load %struct.Vectorf_t*, %struct.Vectorf_t** %6, align 8, !dbg !8757 | |
| %10 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %9, i32 0, i32 0, !dbg !8757 | |
| %11 = load i32, i32* %10, align 8, !dbg !8757 | |
| %12 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8757 | |
| %13 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %12, i32 0, i32 0, !dbg !8757 | |
| %14 = load i32, i32* %13, align 8, !dbg !8757 | |
| %15 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8757 | |
| %16 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %15, i32 0, i32 0, !dbg !8757 | |
| %17 = load i32, i32* %16, align 8, !dbg !8757 | |
| %18 = icmp ult i32 %14, %17, !dbg !8757 | |
| br i1 %18, label %19, label %23, !dbg !8757 | |
| 19: ; preds = %3 | |
| %20 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8757 | |
| %21 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %20, i32 0, i32 0, !dbg !8757 | |
| %22 = load i32, i32* %21, align 8, !dbg !8757 | |
| br label %27, !dbg !8757 | |
| 23: ; preds = %3 | |
| %24 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8757 | |
| %25 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %24, i32 0, i32 0, !dbg !8757 | |
| %26 = load i32, i32* %25, align 8, !dbg !8757 | |
| br label %27, !dbg !8757 | |
| 27: ; preds = %23, %19 | |
| %28 = phi i32 [ %22, %19 ], [ %26, %23 ], !dbg !8757 | |
| %29 = icmp ult i32 %11, %28, !dbg !8757 | |
| br i1 %29, label %30, label %34, !dbg !8757 | |
| 30: ; preds = %27 | |
| %31 = load %struct.Vectorf_t*, %struct.Vectorf_t** %6, align 8, !dbg !8757 | |
| %32 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %31, i32 0, i32 0, !dbg !8757 | |
| %33 = load i32, i32* %32, align 8, !dbg !8757 | |
| br label %52, !dbg !8757 | |
| 34: ; preds = %27 | |
| %35 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8757 | |
| %36 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %35, i32 0, i32 0, !dbg !8757 | |
| %37 = load i32, i32* %36, align 8, !dbg !8757 | |
| %38 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8757 | |
| %39 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %38, i32 0, i32 0, !dbg !8757 | |
| %40 = load i32, i32* %39, align 8, !dbg !8757 | |
| %41 = icmp ult i32 %37, %40, !dbg !8757 | |
| br i1 %41, label %42, label %46, !dbg !8757 | |
| 42: ; preds = %34 | |
| %43 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8757 | |
| %44 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %43, i32 0, i32 0, !dbg !8757 | |
| %45 = load i32, i32* %44, align 8, !dbg !8757 | |
| br label %50, !dbg !8757 | |
| 46: ; preds = %34 | |
| %47 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8757 | |
| %48 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %47, i32 0, i32 0, !dbg !8757 | |
| %49 = load i32, i32* %48, align 8, !dbg !8757 | |
| br label %50, !dbg !8757 | |
| 50: ; preds = %46, %42 | |
| %51 = phi i32 [ %45, %42 ], [ %49, %46 ], !dbg !8757 | |
| br label %52, !dbg !8757 | |
| 52: ; preds = %50, %30 | |
| %53 = phi i32 [ %33, %30 ], [ %51, %50 ], !dbg !8757 | |
| store i32 %53, i32* %8, align 4, !dbg !8756 | |
| store i32 0, i32* %7, align 4, !dbg !8758 | |
| br label %54, !dbg !8760 | |
| 54: ; preds = %80, %52 | |
| %55 = load i32, i32* %7, align 4, !dbg !8761 | |
| %56 = load i32, i32* %8, align 4, !dbg !8763 | |
| %57 = icmp ult i32 %55, %56, !dbg !8764 | |
| br i1 %57, label %58, label %83, !dbg !8765 | |
| 58: ; preds = %54 | |
| %59 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8766 | |
| %60 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %59, i32 0, i32 1, !dbg !8767 | |
| %61 = load float*, float** %60, align 8, !dbg !8767 | |
| %62 = load i32, i32* %7, align 4, !dbg !8768 | |
| %63 = zext i32 %62 to i64, !dbg !8766 | |
| %64 = getelementptr inbounds float, float* %61, i64 %63, !dbg !8766 | |
| %65 = load float, float* %64, align 4, !dbg !8766 | |
| %66 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8769 | |
| %67 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %66, i32 0, i32 1, !dbg !8770 | |
| %68 = load float*, float** %67, align 8, !dbg !8770 | |
| %69 = load i32, i32* %7, align 4, !dbg !8771 | |
| %70 = zext i32 %69 to i64, !dbg !8769 | |
| %71 = getelementptr inbounds float, float* %68, i64 %70, !dbg !8769 | |
| %72 = load float, float* %71, align 4, !dbg !8769 | |
| %73 = fsub float %65, %72, !dbg !8772 | |
| %74 = load %struct.Vectorf_t*, %struct.Vectorf_t** %6, align 8, !dbg !8773 | |
| %75 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %74, i32 0, i32 1, !dbg !8774 | |
| %76 = load float*, float** %75, align 8, !dbg !8774 | |
| %77 = load i32, i32* %7, align 4, !dbg !8775 | |
| %78 = zext i32 %77 to i64, !dbg !8773 | |
| %79 = getelementptr inbounds float, float* %76, i64 %78, !dbg !8773 | |
| store float %73, float* %79, align 4, !dbg !8776 | |
| br label %80, !dbg !8773 | |
| 80: ; preds = %58 | |
| %81 = load i32, i32* %7, align 4, !dbg !8777 | |
| %82 = add i32 %81, 1, !dbg !8777 | |
| store i32 %82, i32* %7, align 4, !dbg !8777 | |
| br label %54, !dbg !8778, !llvm.loop !8779 | |
| 83: ; preds = %54 | |
| %84 = load %struct.Vectorf_t*, %struct.Vectorf_t** %6, align 8, !dbg !8781 | |
| ret %struct.Vectorf_t* %84, !dbg !8782 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vectorf_t* @vectorMultiplyf(%struct.Vectorf_t* %0, %struct.Vectorf_t* %1, %struct.Vectorf_t* %2) #0 !dbg !8783 { | |
| %4 = alloca %struct.Vectorf_t*, align 8 | |
| %5 = alloca %struct.Vectorf_t*, align 8 | |
| %6 = alloca %struct.Vectorf_t*, align 8 | |
| %7 = alloca i32, align 4 | |
| %8 = alloca i32, align 4 | |
| store %struct.Vectorf_t* %0, %struct.Vectorf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %4, metadata !8784, metadata !DIExpression()), !dbg !8785 | |
| store %struct.Vectorf_t* %1, %struct.Vectorf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %5, metadata !8786, metadata !DIExpression()), !dbg !8787 | |
| store %struct.Vectorf_t* %2, %struct.Vectorf_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %6, metadata !8788, metadata !DIExpression()), !dbg !8789 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !8790, metadata !DIExpression()), !dbg !8791 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !8792, metadata !DIExpression()), !dbg !8793 | |
| %9 = load %struct.Vectorf_t*, %struct.Vectorf_t** %6, align 8, !dbg !8794 | |
| %10 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %9, i32 0, i32 0, !dbg !8794 | |
| %11 = load i32, i32* %10, align 8, !dbg !8794 | |
| %12 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8794 | |
| %13 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %12, i32 0, i32 0, !dbg !8794 | |
| %14 = load i32, i32* %13, align 8, !dbg !8794 | |
| %15 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8794 | |
| %16 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %15, i32 0, i32 0, !dbg !8794 | |
| %17 = load i32, i32* %16, align 8, !dbg !8794 | |
| %18 = icmp ult i32 %14, %17, !dbg !8794 | |
| br i1 %18, label %19, label %23, !dbg !8794 | |
| 19: ; preds = %3 | |
| %20 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8794 | |
| %21 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %20, i32 0, i32 0, !dbg !8794 | |
| %22 = load i32, i32* %21, align 8, !dbg !8794 | |
| br label %27, !dbg !8794 | |
| 23: ; preds = %3 | |
| %24 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8794 | |
| %25 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %24, i32 0, i32 0, !dbg !8794 | |
| %26 = load i32, i32* %25, align 8, !dbg !8794 | |
| br label %27, !dbg !8794 | |
| 27: ; preds = %23, %19 | |
| %28 = phi i32 [ %22, %19 ], [ %26, %23 ], !dbg !8794 | |
| %29 = icmp ult i32 %11, %28, !dbg !8794 | |
| br i1 %29, label %30, label %34, !dbg !8794 | |
| 30: ; preds = %27 | |
| %31 = load %struct.Vectorf_t*, %struct.Vectorf_t** %6, align 8, !dbg !8794 | |
| %32 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %31, i32 0, i32 0, !dbg !8794 | |
| %33 = load i32, i32* %32, align 8, !dbg !8794 | |
| br label %52, !dbg !8794 | |
| 34: ; preds = %27 | |
| %35 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8794 | |
| %36 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %35, i32 0, i32 0, !dbg !8794 | |
| %37 = load i32, i32* %36, align 8, !dbg !8794 | |
| %38 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8794 | |
| %39 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %38, i32 0, i32 0, !dbg !8794 | |
| %40 = load i32, i32* %39, align 8, !dbg !8794 | |
| %41 = icmp ult i32 %37, %40, !dbg !8794 | |
| br i1 %41, label %42, label %46, !dbg !8794 | |
| 42: ; preds = %34 | |
| %43 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8794 | |
| %44 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %43, i32 0, i32 0, !dbg !8794 | |
| %45 = load i32, i32* %44, align 8, !dbg !8794 | |
| br label %50, !dbg !8794 | |
| 46: ; preds = %34 | |
| %47 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8794 | |
| %48 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %47, i32 0, i32 0, !dbg !8794 | |
| %49 = load i32, i32* %48, align 8, !dbg !8794 | |
| br label %50, !dbg !8794 | |
| 50: ; preds = %46, %42 | |
| %51 = phi i32 [ %45, %42 ], [ %49, %46 ], !dbg !8794 | |
| br label %52, !dbg !8794 | |
| 52: ; preds = %50, %30 | |
| %53 = phi i32 [ %33, %30 ], [ %51, %50 ], !dbg !8794 | |
| store i32 %53, i32* %8, align 4, !dbg !8793 | |
| store i32 0, i32* %7, align 4, !dbg !8795 | |
| br label %54, !dbg !8797 | |
| 54: ; preds = %80, %52 | |
| %55 = load i32, i32* %7, align 4, !dbg !8798 | |
| %56 = load i32, i32* %8, align 4, !dbg !8800 | |
| %57 = icmp ult i32 %55, %56, !dbg !8801 | |
| br i1 %57, label %58, label %83, !dbg !8802 | |
| 58: ; preds = %54 | |
| %59 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8803 | |
| %60 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %59, i32 0, i32 1, !dbg !8804 | |
| %61 = load float*, float** %60, align 8, !dbg !8804 | |
| %62 = load i32, i32* %7, align 4, !dbg !8805 | |
| %63 = zext i32 %62 to i64, !dbg !8803 | |
| %64 = getelementptr inbounds float, float* %61, i64 %63, !dbg !8803 | |
| %65 = load float, float* %64, align 4, !dbg !8803 | |
| %66 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8806 | |
| %67 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %66, i32 0, i32 1, !dbg !8807 | |
| %68 = load float*, float** %67, align 8, !dbg !8807 | |
| %69 = load i32, i32* %7, align 4, !dbg !8808 | |
| %70 = zext i32 %69 to i64, !dbg !8806 | |
| %71 = getelementptr inbounds float, float* %68, i64 %70, !dbg !8806 | |
| %72 = load float, float* %71, align 4, !dbg !8806 | |
| %73 = fmul float %65, %72, !dbg !8809 | |
| %74 = load %struct.Vectorf_t*, %struct.Vectorf_t** %6, align 8, !dbg !8810 | |
| %75 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %74, i32 0, i32 1, !dbg !8811 | |
| %76 = load float*, float** %75, align 8, !dbg !8811 | |
| %77 = load i32, i32* %7, align 4, !dbg !8812 | |
| %78 = zext i32 %77 to i64, !dbg !8810 | |
| %79 = getelementptr inbounds float, float* %76, i64 %78, !dbg !8810 | |
| store float %73, float* %79, align 4, !dbg !8813 | |
| br label %80, !dbg !8810 | |
| 80: ; preds = %58 | |
| %81 = load i32, i32* %7, align 4, !dbg !8814 | |
| %82 = add i32 %81, 1, !dbg !8814 | |
| store i32 %82, i32* %7, align 4, !dbg !8814 | |
| br label %54, !dbg !8815, !llvm.loop !8816 | |
| 83: ; preds = %54 | |
| %84 = load %struct.Vectorf_t*, %struct.Vectorf_t** %6, align 8, !dbg !8818 | |
| ret %struct.Vectorf_t* %84, !dbg !8819 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @vectorDotf(%struct.Vectorf_t* %0, %struct.Vectorf_t* %1) #0 !dbg !8820 { | |
| %3 = alloca %struct.Vectorf_t*, align 8 | |
| %4 = alloca %struct.Vectorf_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca i32, align 4 | |
| %7 = alloca float, align 4 | |
| store %struct.Vectorf_t* %0, %struct.Vectorf_t** %3, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %3, metadata !8823, metadata !DIExpression()), !dbg !8824 | |
| store %struct.Vectorf_t* %1, %struct.Vectorf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %4, metadata !8825, metadata !DIExpression()), !dbg !8826 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !8827, metadata !DIExpression()), !dbg !8828 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !8829, metadata !DIExpression()), !dbg !8830 | |
| %8 = load %struct.Vectorf_t*, %struct.Vectorf_t** %3, align 8, !dbg !8831 | |
| %9 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %8, i32 0, i32 0, !dbg !8831 | |
| %10 = load i32, i32* %9, align 8, !dbg !8831 | |
| %11 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8831 | |
| %12 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %11, i32 0, i32 0, !dbg !8831 | |
| %13 = load i32, i32* %12, align 8, !dbg !8831 | |
| %14 = icmp ult i32 %10, %13, !dbg !8831 | |
| br i1 %14, label %15, label %19, !dbg !8831 | |
| 15: ; preds = %2 | |
| %16 = load %struct.Vectorf_t*, %struct.Vectorf_t** %3, align 8, !dbg !8831 | |
| %17 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %16, i32 0, i32 0, !dbg !8831 | |
| %18 = load i32, i32* %17, align 8, !dbg !8831 | |
| br label %23, !dbg !8831 | |
| 19: ; preds = %2 | |
| %20 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8831 | |
| %21 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %20, i32 0, i32 0, !dbg !8831 | |
| %22 = load i32, i32* %21, align 8, !dbg !8831 | |
| br label %23, !dbg !8831 | |
| 23: ; preds = %19, %15 | |
| %24 = phi i32 [ %18, %15 ], [ %22, %19 ], !dbg !8831 | |
| store i32 %24, i32* %6, align 4, !dbg !8830 | |
| call void @llvm.dbg.declare(metadata float* %7, metadata !8832, metadata !DIExpression()), !dbg !8833 | |
| store float 0.000000e+00, float* %7, align 4, !dbg !8833 | |
| store i32 0, i32* %5, align 4, !dbg !8834 | |
| br label %25, !dbg !8836 | |
| 25: ; preds = %47, %23 | |
| %26 = load i32, i32* %5, align 4, !dbg !8837 | |
| %27 = load i32, i32* %6, align 4, !dbg !8839 | |
| %28 = icmp ult i32 %26, %27, !dbg !8840 | |
| br i1 %28, label %29, label %50, !dbg !8841 | |
| 29: ; preds = %25 | |
| %30 = load %struct.Vectorf_t*, %struct.Vectorf_t** %3, align 8, !dbg !8842 | |
| %31 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %30, i32 0, i32 1, !dbg !8843 | |
| %32 = load float*, float** %31, align 8, !dbg !8843 | |
| %33 = load i32, i32* %5, align 4, !dbg !8844 | |
| %34 = zext i32 %33 to i64, !dbg !8842 | |
| %35 = getelementptr inbounds float, float* %32, i64 %34, !dbg !8842 | |
| %36 = load float, float* %35, align 4, !dbg !8842 | |
| %37 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8845 | |
| %38 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %37, i32 0, i32 1, !dbg !8846 | |
| %39 = load float*, float** %38, align 8, !dbg !8846 | |
| %40 = load i32, i32* %5, align 4, !dbg !8847 | |
| %41 = zext i32 %40 to i64, !dbg !8845 | |
| %42 = getelementptr inbounds float, float* %39, i64 %41, !dbg !8845 | |
| %43 = load float, float* %42, align 4, !dbg !8845 | |
| %44 = fmul float %36, %43, !dbg !8848 | |
| %45 = load float, float* %7, align 4, !dbg !8849 | |
| %46 = fadd float %45, %44, !dbg !8849 | |
| store float %46, float* %7, align 4, !dbg !8849 | |
| br label %47, !dbg !8850 | |
| 47: ; preds = %29 | |
| %48 = load i32, i32* %5, align 4, !dbg !8851 | |
| %49 = add i32 %48, 1, !dbg !8851 | |
| store i32 %49, i32* %5, align 4, !dbg !8851 | |
| br label %25, !dbg !8852, !llvm.loop !8853 | |
| 50: ; preds = %25 | |
| %51 = load float, float* %7, align 4, !dbg !8855 | |
| ret float %51, !dbg !8856 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @vectorLengthSquaredf(%struct.Vectorf_t* %0) #0 !dbg !8857 { | |
| %2 = alloca %struct.Vectorf_t*, align 8 | |
| store %struct.Vectorf_t* %0, %struct.Vectorf_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %2, metadata !8860, metadata !DIExpression()), !dbg !8861 | |
| %3 = load %struct.Vectorf_t*, %struct.Vectorf_t** %2, align 8, !dbg !8862 | |
| %4 = load %struct.Vectorf_t*, %struct.Vectorf_t** %2, align 8, !dbg !8863 | |
| %5 = call float @vectorDotf(%struct.Vectorf_t* %3, %struct.Vectorf_t* %4), !dbg !8864 | |
| ret float %5, !dbg !8865 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @vectorLengthf(%struct.Vectorf_t* %0) #0 !dbg !8866 { | |
| %2 = alloca %struct.Vectorf_t*, align 8 | |
| store %struct.Vectorf_t* %0, %struct.Vectorf_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %2, metadata !8867, metadata !DIExpression()), !dbg !8868 | |
| %3 = load %struct.Vectorf_t*, %struct.Vectorf_t** %2, align 8, !dbg !8869 | |
| %4 = load %struct.Vectorf_t*, %struct.Vectorf_t** %2, align 8, !dbg !8870 | |
| %5 = call float @vectorDotf(%struct.Vectorf_t* %3, %struct.Vectorf_t* %4), !dbg !8871 | |
| %6 = call float @sqrtf(float %5) #7, !dbg !8872 | |
| ret float %6, !dbg !8873 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vectorf_t* @vectorChangeLengthf(%struct.Vectorf_t* %0, %struct.Vectorf_t* %1, float %2) #0 !dbg !8874 { | |
| %4 = alloca %struct.Vectorf_t*, align 8 | |
| %5 = alloca %struct.Vectorf_t*, align 8 | |
| %6 = alloca float, align 4 | |
| %7 = alloca float, align 4 | |
| store %struct.Vectorf_t* %0, %struct.Vectorf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %4, metadata !8877, metadata !DIExpression()), !dbg !8878 | |
| store %struct.Vectorf_t* %1, %struct.Vectorf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %5, metadata !8879, metadata !DIExpression()), !dbg !8880 | |
| store float %2, float* %6, align 4 | |
| call void @llvm.dbg.declare(metadata float* %6, metadata !8881, metadata !DIExpression()), !dbg !8882 | |
| call void @llvm.dbg.declare(metadata float* %7, metadata !8883, metadata !DIExpression()), !dbg !8884 | |
| %8 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8885 | |
| %9 = call float @vectorLengthf(%struct.Vectorf_t* %8), !dbg !8886 | |
| store float %9, float* %7, align 4, !dbg !8884 | |
| %10 = load float, float* %7, align 4, !dbg !8887 | |
| %11 = fcmp ogt float %10, 0.000000e+00, !dbg !8889 | |
| br i1 %11, label %12, label %19, !dbg !8890 | |
| 12: ; preds = %3 | |
| %13 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8891 | |
| %14 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8893 | |
| %15 = load float, float* %6, align 4, !dbg !8894 | |
| %16 = load float, float* %7, align 4, !dbg !8895 | |
| %17 = fdiv float %15, %16, !dbg !8896 | |
| %18 = call %struct.Vectorf_t* @vectorScalef(%struct.Vectorf_t* %13, %struct.Vectorf_t* %14, float %17), !dbg !8897 | |
| br label %33, !dbg !8898 | |
| 19: ; preds = %3 | |
| %20 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8899 | |
| %21 = call %struct.Vectorf_t* @vectorZerof(%struct.Vectorf_t* %20), !dbg !8901 | |
| %22 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8902 | |
| %23 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %22, i32 0, i32 0, !dbg !8904 | |
| %24 = load i32, i32* %23, align 8, !dbg !8904 | |
| %25 = icmp ugt i32 %24, 0, !dbg !8905 | |
| br i1 %25, label %26, label %32, !dbg !8906 | |
| 26: ; preds = %19 | |
| %27 = load float, float* %6, align 4, !dbg !8907 | |
| %28 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8908 | |
| %29 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %28, i32 0, i32 1, !dbg !8909 | |
| %30 = load float*, float** %29, align 8, !dbg !8909 | |
| %31 = getelementptr inbounds float, float* %30, i64 0, !dbg !8908 | |
| store float %27, float* %31, align 4, !dbg !8910 | |
| br label %32, !dbg !8908 | |
| 32: ; preds = %26, %19 | |
| br label %33 | |
| 33: ; preds = %32, %12 | |
| %34 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8911 | |
| ret %struct.Vectorf_t* %34, !dbg !8912 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vectorf_t* @vectorScalef(%struct.Vectorf_t* %0, %struct.Vectorf_t* %1, float %2) #0 !dbg !8913 { | |
| %4 = alloca %struct.Vectorf_t*, align 8 | |
| %5 = alloca %struct.Vectorf_t*, align 8 | |
| %6 = alloca float, align 4 | |
| %7 = alloca i32, align 4 | |
| %8 = alloca i32, align 4 | |
| store %struct.Vectorf_t* %0, %struct.Vectorf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %4, metadata !8914, metadata !DIExpression()), !dbg !8915 | |
| store %struct.Vectorf_t* %1, %struct.Vectorf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %5, metadata !8916, metadata !DIExpression()), !dbg !8917 | |
| store float %2, float* %6, align 4 | |
| call void @llvm.dbg.declare(metadata float* %6, metadata !8918, metadata !DIExpression()), !dbg !8919 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !8920, metadata !DIExpression()), !dbg !8921 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !8922, metadata !DIExpression()), !dbg !8923 | |
| %9 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8924 | |
| %10 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %9, i32 0, i32 0, !dbg !8924 | |
| %11 = load i32, i32* %10, align 8, !dbg !8924 | |
| %12 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8924 | |
| %13 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %12, i32 0, i32 0, !dbg !8924 | |
| %14 = load i32, i32* %13, align 8, !dbg !8924 | |
| %15 = icmp ult i32 %11, %14, !dbg !8924 | |
| br i1 %15, label %16, label %20, !dbg !8924 | |
| 16: ; preds = %3 | |
| %17 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8924 | |
| %18 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %17, i32 0, i32 0, !dbg !8924 | |
| %19 = load i32, i32* %18, align 8, !dbg !8924 | |
| br label %24, !dbg !8924 | |
| 20: ; preds = %3 | |
| %21 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8924 | |
| %22 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %21, i32 0, i32 0, !dbg !8924 | |
| %23 = load i32, i32* %22, align 8, !dbg !8924 | |
| br label %24, !dbg !8924 | |
| 24: ; preds = %20, %16 | |
| %25 = phi i32 [ %19, %16 ], [ %23, %20 ], !dbg !8924 | |
| store i32 %25, i32* %8, align 4, !dbg !8923 | |
| store i32 0, i32* %7, align 4, !dbg !8925 | |
| br label %26, !dbg !8927 | |
| 26: ; preds = %46, %24 | |
| %27 = load i32, i32* %7, align 4, !dbg !8928 | |
| %28 = load i32, i32* %8, align 4, !dbg !8930 | |
| %29 = icmp ult i32 %27, %28, !dbg !8931 | |
| br i1 %29, label %30, label %49, !dbg !8932 | |
| 30: ; preds = %26 | |
| %31 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8933 | |
| %32 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %31, i32 0, i32 1, !dbg !8934 | |
| %33 = load float*, float** %32, align 8, !dbg !8934 | |
| %34 = load i32, i32* %7, align 4, !dbg !8935 | |
| %35 = zext i32 %34 to i64, !dbg !8933 | |
| %36 = getelementptr inbounds float, float* %33, i64 %35, !dbg !8933 | |
| %37 = load float, float* %36, align 4, !dbg !8933 | |
| %38 = load float, float* %6, align 4, !dbg !8936 | |
| %39 = fmul float %37, %38, !dbg !8937 | |
| %40 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8938 | |
| %41 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %40, i32 0, i32 1, !dbg !8939 | |
| %42 = load float*, float** %41, align 8, !dbg !8939 | |
| %43 = load i32, i32* %7, align 4, !dbg !8940 | |
| %44 = zext i32 %43 to i64, !dbg !8938 | |
| %45 = getelementptr inbounds float, float* %42, i64 %44, !dbg !8938 | |
| store float %39, float* %45, align 4, !dbg !8941 | |
| br label %46, !dbg !8938 | |
| 46: ; preds = %30 | |
| %47 = load i32, i32* %7, align 4, !dbg !8942 | |
| %48 = add i32 %47, 1, !dbg !8942 | |
| store i32 %48, i32* %7, align 4, !dbg !8942 | |
| br label %26, !dbg !8943, !llvm.loop !8944 | |
| 49: ; preds = %26 | |
| %50 = load %struct.Vectorf_t*, %struct.Vectorf_t** %5, align 8, !dbg !8946 | |
| ret %struct.Vectorf_t* %50, !dbg !8947 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vectorf_t* @vectorUnitf(%struct.Vectorf_t* %0, %struct.Vectorf_t* %1) #0 !dbg !8948 { | |
| %3 = alloca %struct.Vectorf_t*, align 8 | |
| %4 = alloca %struct.Vectorf_t*, align 8 | |
| store %struct.Vectorf_t* %0, %struct.Vectorf_t** %3, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %3, metadata !8949, metadata !DIExpression()), !dbg !8950 | |
| store %struct.Vectorf_t* %1, %struct.Vectorf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %4, metadata !8951, metadata !DIExpression()), !dbg !8952 | |
| %5 = load %struct.Vectorf_t*, %struct.Vectorf_t** %3, align 8, !dbg !8953 | |
| %6 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8954 | |
| %7 = call %struct.Vectorf_t* @vectorChangeLengthf(%struct.Vectorf_t* %5, %struct.Vectorf_t* %6, float 1.000000e+00), !dbg !8955 | |
| ret %struct.Vectorf_t* %7, !dbg !8956 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Vectorf_t* @vectorAbsf(%struct.Vectorf_t* %0, %struct.Vectorf_t* %1) #0 !dbg !8957 { | |
| %3 = alloca %struct.Vectorf_t*, align 8 | |
| %4 = alloca %struct.Vectorf_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca i32, align 4 | |
| store %struct.Vectorf_t* %0, %struct.Vectorf_t** %3, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %3, metadata !8958, metadata !DIExpression()), !dbg !8959 | |
| store %struct.Vectorf_t* %1, %struct.Vectorf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %4, metadata !8960, metadata !DIExpression()), !dbg !8961 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !8962, metadata !DIExpression()), !dbg !8963 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !8964, metadata !DIExpression()), !dbg !8965 | |
| %7 = load %struct.Vectorf_t*, %struct.Vectorf_t** %3, align 8, !dbg !8966 | |
| %8 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %7, i32 0, i32 0, !dbg !8966 | |
| %9 = load i32, i32* %8, align 8, !dbg !8966 | |
| %10 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8966 | |
| %11 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %10, i32 0, i32 0, !dbg !8966 | |
| %12 = load i32, i32* %11, align 8, !dbg !8966 | |
| %13 = icmp ult i32 %9, %12, !dbg !8966 | |
| br i1 %13, label %14, label %18, !dbg !8966 | |
| 14: ; preds = %2 | |
| %15 = load %struct.Vectorf_t*, %struct.Vectorf_t** %3, align 8, !dbg !8966 | |
| %16 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %15, i32 0, i32 0, !dbg !8966 | |
| %17 = load i32, i32* %16, align 8, !dbg !8966 | |
| br label %22, !dbg !8966 | |
| 18: ; preds = %2 | |
| %19 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8966 | |
| %20 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %19, i32 0, i32 0, !dbg !8966 | |
| %21 = load i32, i32* %20, align 8, !dbg !8966 | |
| br label %22, !dbg !8966 | |
| 22: ; preds = %18, %14 | |
| %23 = phi i32 [ %17, %14 ], [ %21, %18 ], !dbg !8966 | |
| store i32 %23, i32* %6, align 4, !dbg !8965 | |
| store i32 0, i32* %5, align 4, !dbg !8967 | |
| br label %24, !dbg !8969 | |
| 24: ; preds = %43, %22 | |
| %25 = load i32, i32* %5, align 4, !dbg !8970 | |
| %26 = load i32, i32* %6, align 4, !dbg !8972 | |
| %27 = icmp ult i32 %25, %26, !dbg !8973 | |
| br i1 %27, label %28, label %46, !dbg !8974 | |
| 28: ; preds = %24 | |
| %29 = load %struct.Vectorf_t*, %struct.Vectorf_t** %3, align 8, !dbg !8975 | |
| %30 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %29, i32 0, i32 1, !dbg !8976 | |
| %31 = load float*, float** %30, align 8, !dbg !8976 | |
| %32 = load i32, i32* %5, align 4, !dbg !8977 | |
| %33 = zext i32 %32 to i64, !dbg !8975 | |
| %34 = getelementptr inbounds float, float* %31, i64 %33, !dbg !8975 | |
| %35 = load float, float* %34, align 4, !dbg !8975 | |
| %36 = call float @llvm.fabs.f32(float %35), !dbg !8978 | |
| %37 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8979 | |
| %38 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %37, i32 0, i32 1, !dbg !8980 | |
| %39 = load float*, float** %38, align 8, !dbg !8980 | |
| %40 = load i32, i32* %5, align 4, !dbg !8981 | |
| %41 = zext i32 %40 to i64, !dbg !8979 | |
| %42 = getelementptr inbounds float, float* %39, i64 %41, !dbg !8979 | |
| store float %36, float* %42, align 4, !dbg !8982 | |
| br label %43, !dbg !8979 | |
| 43: ; preds = %28 | |
| %44 = load i32, i32* %5, align 4, !dbg !8983 | |
| %45 = add i32 %44, 1, !dbg !8983 | |
| store i32 %45, i32* %5, align 4, !dbg !8983 | |
| br label %24, !dbg !8984, !llvm.loop !8985 | |
| 46: ; preds = %24 | |
| %47 = load %struct.Vectorf_t*, %struct.Vectorf_t** %4, align 8, !dbg !8987 | |
| ret %struct.Vectorf_t* %47, !dbg !8988 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @vectorMaxf(%struct.Vectorf_t* %0) #0 !dbg !8989 { | |
| %2 = alloca %struct.Vectorf_t*, align 8 | |
| %3 = alloca i32, align 4 | |
| %4 = alloca float, align 4 | |
| store %struct.Vectorf_t* %0, %struct.Vectorf_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %2, metadata !8990, metadata !DIExpression()), !dbg !8991 | |
| call void @llvm.dbg.declare(metadata i32* %3, metadata !8992, metadata !DIExpression()), !dbg !8993 | |
| call void @llvm.dbg.declare(metadata float* %4, metadata !8994, metadata !DIExpression()), !dbg !8995 | |
| %5 = load %struct.Vectorf_t*, %struct.Vectorf_t** %2, align 8, !dbg !8996 | |
| %6 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %5, i32 0, i32 0, !dbg !8997 | |
| %7 = load i32, i32* %6, align 8, !dbg !8997 | |
| %8 = icmp ugt i32 %7, 0, !dbg !8998 | |
| br i1 %8, label %9, label %15, !dbg !8999 | |
| 9: ; preds = %1 | |
| %10 = load %struct.Vectorf_t*, %struct.Vectorf_t** %2, align 8, !dbg !9000 | |
| %11 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %10, i32 0, i32 1, !dbg !9001 | |
| %12 = load float*, float** %11, align 8, !dbg !9001 | |
| %13 = getelementptr inbounds float, float* %12, i64 0, !dbg !9000 | |
| %14 = load float, float* %13, align 4, !dbg !9000 | |
| br label %16, !dbg !8999 | |
| 15: ; preds = %1 | |
| br label %16, !dbg !8999 | |
| 16: ; preds = %15, %9 | |
| %17 = phi float [ %14, %9 ], [ 0.000000e+00, %15 ], !dbg !8999 | |
| store float %17, float* %4, align 4, !dbg !8995 | |
| store i32 1, i32* %3, align 4, !dbg !9002 | |
| br label %18, !dbg !9004 | |
| 18: ; preds = %43, %16 | |
| %19 = load i32, i32* %3, align 4, !dbg !9005 | |
| %20 = load %struct.Vectorf_t*, %struct.Vectorf_t** %2, align 8, !dbg !9007 | |
| %21 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %20, i32 0, i32 0, !dbg !9008 | |
| %22 = load i32, i32* %21, align 8, !dbg !9008 | |
| %23 = icmp ult i32 %19, %22, !dbg !9009 | |
| br i1 %23, label %24, label %46, !dbg !9010 | |
| 24: ; preds = %18 | |
| %25 = load float, float* %4, align 4, !dbg !9011 | |
| %26 = load %struct.Vectorf_t*, %struct.Vectorf_t** %2, align 8, !dbg !9014 | |
| %27 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %26, i32 0, i32 1, !dbg !9015 | |
| %28 = load float*, float** %27, align 8, !dbg !9015 | |
| %29 = load i32, i32* %3, align 4, !dbg !9016 | |
| %30 = zext i32 %29 to i64, !dbg !9014 | |
| %31 = getelementptr inbounds float, float* %28, i64 %30, !dbg !9014 | |
| %32 = load float, float* %31, align 4, !dbg !9014 | |
| %33 = fcmp olt float %25, %32, !dbg !9017 | |
| br i1 %33, label %34, label %42, !dbg !9018 | |
| 34: ; preds = %24 | |
| %35 = load %struct.Vectorf_t*, %struct.Vectorf_t** %2, align 8, !dbg !9019 | |
| %36 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %35, i32 0, i32 1, !dbg !9020 | |
| %37 = load float*, float** %36, align 8, !dbg !9020 | |
| %38 = load i32, i32* %3, align 4, !dbg !9021 | |
| %39 = zext i32 %38 to i64, !dbg !9019 | |
| %40 = getelementptr inbounds float, float* %37, i64 %39, !dbg !9019 | |
| %41 = load float, float* %40, align 4, !dbg !9019 | |
| store float %41, float* %4, align 4, !dbg !9022 | |
| br label %42, !dbg !9023 | |
| 42: ; preds = %34, %24 | |
| br label %43, !dbg !9024 | |
| 43: ; preds = %42 | |
| %44 = load i32, i32* %3, align 4, !dbg !9025 | |
| %45 = add i32 %44, 1, !dbg !9025 | |
| store i32 %45, i32* %3, align 4, !dbg !9025 | |
| br label %18, !dbg !9026, !llvm.loop !9027 | |
| 46: ; preds = %18 | |
| %47 = load float, float* %4, align 4, !dbg !9029 | |
| ret float %47, !dbg !9030 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @vectorMinf(%struct.Vectorf_t* %0) #0 !dbg !9031 { | |
| %2 = alloca %struct.Vectorf_t*, align 8 | |
| %3 = alloca i32, align 4 | |
| %4 = alloca float, align 4 | |
| store %struct.Vectorf_t* %0, %struct.Vectorf_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %2, metadata !9032, metadata !DIExpression()), !dbg !9033 | |
| call void @llvm.dbg.declare(metadata i32* %3, metadata !9034, metadata !DIExpression()), !dbg !9035 | |
| call void @llvm.dbg.declare(metadata float* %4, metadata !9036, metadata !DIExpression()), !dbg !9037 | |
| %5 = load %struct.Vectorf_t*, %struct.Vectorf_t** %2, align 8, !dbg !9038 | |
| %6 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %5, i32 0, i32 0, !dbg !9039 | |
| %7 = load i32, i32* %6, align 8, !dbg !9039 | |
| %8 = icmp ugt i32 %7, 0, !dbg !9040 | |
| br i1 %8, label %9, label %15, !dbg !9041 | |
| 9: ; preds = %1 | |
| %10 = load %struct.Vectorf_t*, %struct.Vectorf_t** %2, align 8, !dbg !9042 | |
| %11 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %10, i32 0, i32 1, !dbg !9043 | |
| %12 = load float*, float** %11, align 8, !dbg !9043 | |
| %13 = getelementptr inbounds float, float* %12, i64 0, !dbg !9042 | |
| %14 = load float, float* %13, align 4, !dbg !9042 | |
| br label %16, !dbg !9041 | |
| 15: ; preds = %1 | |
| br label %16, !dbg !9041 | |
| 16: ; preds = %15, %9 | |
| %17 = phi float [ %14, %9 ], [ 0.000000e+00, %15 ], !dbg !9041 | |
| store float %17, float* %4, align 4, !dbg !9037 | |
| store i32 1, i32* %3, align 4, !dbg !9044 | |
| br label %18, !dbg !9046 | |
| 18: ; preds = %43, %16 | |
| %19 = load i32, i32* %3, align 4, !dbg !9047 | |
| %20 = load %struct.Vectorf_t*, %struct.Vectorf_t** %2, align 8, !dbg !9049 | |
| %21 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %20, i32 0, i32 0, !dbg !9050 | |
| %22 = load i32, i32* %21, align 8, !dbg !9050 | |
| %23 = icmp ult i32 %19, %22, !dbg !9051 | |
| br i1 %23, label %24, label %46, !dbg !9052 | |
| 24: ; preds = %18 | |
| %25 = load float, float* %4, align 4, !dbg !9053 | |
| %26 = load %struct.Vectorf_t*, %struct.Vectorf_t** %2, align 8, !dbg !9056 | |
| %27 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %26, i32 0, i32 1, !dbg !9057 | |
| %28 = load float*, float** %27, align 8, !dbg !9057 | |
| %29 = load i32, i32* %3, align 4, !dbg !9058 | |
| %30 = zext i32 %29 to i64, !dbg !9056 | |
| %31 = getelementptr inbounds float, float* %28, i64 %30, !dbg !9056 | |
| %32 = load float, float* %31, align 4, !dbg !9056 | |
| %33 = fcmp ogt float %25, %32, !dbg !9059 | |
| br i1 %33, label %34, label %42, !dbg !9060 | |
| 34: ; preds = %24 | |
| %35 = load %struct.Vectorf_t*, %struct.Vectorf_t** %2, align 8, !dbg !9061 | |
| %36 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %35, i32 0, i32 1, !dbg !9062 | |
| %37 = load float*, float** %36, align 8, !dbg !9062 | |
| %38 = load i32, i32* %3, align 4, !dbg !9063 | |
| %39 = zext i32 %38 to i64, !dbg !9061 | |
| %40 = getelementptr inbounds float, float* %37, i64 %39, !dbg !9061 | |
| %41 = load float, float* %40, align 4, !dbg !9061 | |
| store float %41, float* %4, align 4, !dbg !9064 | |
| br label %42, !dbg !9065 | |
| 42: ; preds = %34, %24 | |
| br label %43, !dbg !9066 | |
| 43: ; preds = %42 | |
| %44 = load i32, i32* %3, align 4, !dbg !9067 | |
| %45 = add i32 %44, 1, !dbg !9067 | |
| store i32 %45, i32* %3, align 4, !dbg !9067 | |
| br label %18, !dbg !9068, !llvm.loop !9069 | |
| 46: ; preds = %18 | |
| %47 = load float, float* %4, align 4, !dbg !9071 | |
| ret float %47, !dbg !9072 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @matrixGetf(%struct.Matrixf_t* %0, i32 %1, i32 %2) #0 !dbg !9073 { | |
| %4 = alloca %struct.Matrixf_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca i32, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %4, metadata !9078, metadata !DIExpression()), !dbg !9079 | |
| store i32 %1, i32* %5, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !9080, metadata !DIExpression()), !dbg !9081 | |
| store i32 %2, i32* %6, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !9082, metadata !DIExpression()), !dbg !9083 | |
| %7 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !9084 | |
| %8 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %7, i32 0, i32 2, !dbg !9084 | |
| %9 = load float*, float** %8, align 8, !dbg !9084 | |
| %10 = load i32, i32* %5, align 4, !dbg !9084 | |
| %11 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !9084 | |
| %12 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %11, i32 0, i32 1, !dbg !9084 | |
| %13 = load i32, i32* %12, align 4, !dbg !9084 | |
| %14 = mul i32 %10, %13, !dbg !9084 | |
| %15 = load i32, i32* %6, align 4, !dbg !9084 | |
| %16 = add i32 %14, %15, !dbg !9084 | |
| %17 = zext i32 %16 to i64, !dbg !9084 | |
| %18 = getelementptr inbounds float, float* %9, i64 %17, !dbg !9084 | |
| %19 = load float, float* %18, align 4, !dbg !9084 | |
| ret float %19, !dbg !9085 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @matrixSetf(%struct.Matrixf_t* %0, i32 %1, i32 %2, float %3) #0 !dbg !9086 { | |
| %5 = alloca %struct.Matrixf_t*, align 8 | |
| %6 = alloca i32, align 4 | |
| %7 = alloca i32, align 4 | |
| %8 = alloca float, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %5, metadata !9089, metadata !DIExpression()), !dbg !9090 | |
| store i32 %1, i32* %6, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !9091, metadata !DIExpression()), !dbg !9092 | |
| store i32 %2, i32* %7, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !9093, metadata !DIExpression()), !dbg !9094 | |
| store float %3, float* %8, align 4 | |
| call void @llvm.dbg.declare(metadata float* %8, metadata !9095, metadata !DIExpression()), !dbg !9096 | |
| %9 = load float, float* %8, align 4, !dbg !9097 | |
| %10 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9098 | |
| %11 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %10, i32 0, i32 2, !dbg !9098 | |
| %12 = load float*, float** %11, align 8, !dbg !9098 | |
| %13 = load i32, i32* %6, align 4, !dbg !9098 | |
| %14 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9098 | |
| %15 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %14, i32 0, i32 1, !dbg !9098 | |
| %16 = load i32, i32* %15, align 4, !dbg !9098 | |
| %17 = mul i32 %13, %16, !dbg !9098 | |
| %18 = load i32, i32* %7, align 4, !dbg !9098 | |
| %19 = add i32 %17, %18, !dbg !9098 | |
| %20 = zext i32 %19 to i64, !dbg !9098 | |
| %21 = getelementptr inbounds float, float* %12, i64 %20, !dbg !9098 | |
| store float %9, float* %21, align 4, !dbg !9099 | |
| ret void, !dbg !9100 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @matrixAddToElementf(%struct.Matrixf_t* %0, i32 %1, i32 %2, float %3) #0 !dbg !9101 { | |
| %5 = alloca %struct.Matrixf_t*, align 8 | |
| %6 = alloca i32, align 4 | |
| %7 = alloca i32, align 4 | |
| %8 = alloca float, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %5, metadata !9102, metadata !DIExpression()), !dbg !9103 | |
| store i32 %1, i32* %6, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !9104, metadata !DIExpression()), !dbg !9105 | |
| store i32 %2, i32* %7, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !9106, metadata !DIExpression()), !dbg !9107 | |
| store float %3, float* %8, align 4 | |
| call void @llvm.dbg.declare(metadata float* %8, metadata !9108, metadata !DIExpression()), !dbg !9109 | |
| %9 = load float, float* %8, align 4, !dbg !9110 | |
| %10 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9111 | |
| %11 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %10, i32 0, i32 2, !dbg !9111 | |
| %12 = load float*, float** %11, align 8, !dbg !9111 | |
| %13 = load i32, i32* %6, align 4, !dbg !9111 | |
| %14 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9111 | |
| %15 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %14, i32 0, i32 1, !dbg !9111 | |
| %16 = load i32, i32* %15, align 4, !dbg !9111 | |
| %17 = mul i32 %13, %16, !dbg !9111 | |
| %18 = load i32, i32* %7, align 4, !dbg !9111 | |
| %19 = add i32 %17, %18, !dbg !9111 | |
| %20 = zext i32 %19 to i64, !dbg !9111 | |
| %21 = getelementptr inbounds float, float* %12, i64 %20, !dbg !9111 | |
| %22 = load float, float* %21, align 4, !dbg !9112 | |
| %23 = fadd float %22, %9, !dbg !9112 | |
| store float %23, float* %21, align 4, !dbg !9112 | |
| ret void, !dbg !9113 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Matrixf_t* @matrixAllocatef(i32 %0, i32 %1) #0 !dbg !9114 { | |
| %3 = alloca i32, align 4 | |
| %4 = alloca i32, align 4 | |
| %5 = alloca %struct.Matrixf_t*, align 8 | |
| %6 = alloca i8*, align 8 | |
| store i32 %0, i32* %3, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %3, metadata !9117, metadata !DIExpression()), !dbg !9118 | |
| store i32 %1, i32* %4, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %4, metadata !9119, metadata !DIExpression()), !dbg !9120 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %5, metadata !9121, metadata !DIExpression()), !dbg !9122 | |
| %7 = load i32, i32* %3, align 4, !dbg !9123 | |
| %8 = zext i32 %7 to i64, !dbg !9123 | |
| %9 = mul i64 4, %8, !dbg !9124 | |
| %10 = load i32, i32* %4, align 4, !dbg !9125 | |
| %11 = zext i32 %10 to i64, !dbg !9125 | |
| %12 = mul i64 %9, %11, !dbg !9126 | |
| %13 = add i64 16, %12, !dbg !9127 | |
| %14 = call noalias i8* @malloc(i64 %13) #7, !dbg !9128 | |
| %15 = bitcast i8* %14 to %struct.Matrixf_t*, !dbg !9129 | |
| store %struct.Matrixf_t* %15, %struct.Matrixf_t** %5, align 8, !dbg !9122 | |
| %16 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9130 | |
| %17 = icmp ne %struct.Matrixf_t* %16, null, !dbg !9130 | |
| br i1 %17, label %18, label %34, !dbg !9132 | |
| 18: ; preds = %2 | |
| call void @llvm.dbg.declare(metadata i8** %6, metadata !9133, metadata !DIExpression()), !dbg !9135 | |
| %19 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9136 | |
| %20 = bitcast %struct.Matrixf_t* %19 to i8*, !dbg !9137 | |
| store i8* %20, i8** %6, align 8, !dbg !9135 | |
| %21 = load i8*, i8** %6, align 8, !dbg !9138 | |
| %22 = getelementptr inbounds i8, i8* %21, i64 16, !dbg !9138 | |
| store i8* %22, i8** %6, align 8, !dbg !9138 | |
| %23 = load i8*, i8** %6, align 8, !dbg !9139 | |
| %24 = bitcast i8* %23 to float*, !dbg !9140 | |
| %25 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9141 | |
| %26 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %25, i32 0, i32 2, !dbg !9142 | |
| store float* %24, float** %26, align 8, !dbg !9143 | |
| %27 = load i32, i32* %4, align 4, !dbg !9144 | |
| %28 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9145 | |
| %29 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %28, i32 0, i32 1, !dbg !9146 | |
| store i32 %27, i32* %29, align 4, !dbg !9147 | |
| %30 = load i32, i32* %3, align 4, !dbg !9148 | |
| %31 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9149 | |
| %32 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %31, i32 0, i32 0, !dbg !9150 | |
| store i32 %30, i32* %32, align 8, !dbg !9151 | |
| %33 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9152 | |
| call void @matrixZerof(%struct.Matrixf_t* %33), !dbg !9153 | |
| br label %34, !dbg !9154 | |
| 34: ; preds = %18, %2 | |
| %35 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9155 | |
| ret %struct.Matrixf_t* %35, !dbg !9156 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @matrixZerof(%struct.Matrixf_t* %0) #0 !dbg !9157 { | |
| %2 = alloca %struct.Matrixf_t*, align 8 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %2, metadata !9160, metadata !DIExpression()), !dbg !9161 | |
| %3 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !9162 | |
| %4 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %3, i32 0, i32 2, !dbg !9163 | |
| %5 = load float*, float** %4, align 8, !dbg !9163 | |
| %6 = bitcast float* %5 to i8*, !dbg !9164 | |
| %7 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !9165 | |
| %8 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %7, i32 0, i32 1, !dbg !9166 | |
| %9 = load i32, i32* %8, align 4, !dbg !9166 | |
| %10 = zext i32 %9 to i64, !dbg !9165 | |
| %11 = mul i64 4, %10, !dbg !9167 | |
| %12 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !9168 | |
| %13 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %12, i32 0, i32 0, !dbg !9169 | |
| %14 = load i32, i32* %13, align 8, !dbg !9169 | |
| %15 = zext i32 %14 to i64, !dbg !9168 | |
| %16 = mul i64 %11, %15, !dbg !9170 | |
| call void @llvm.memset.p0i8.i64(i8* align 4 %6, i8 0, i64 %16, i1 false), !dbg !9164 | |
| ret void, !dbg !9171 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Matrixf_t* @matrixChangeAllocateSizef(%struct.Matrixf_t* %0, i32 %1, i32 %2, float %3) #0 !dbg !9172 { | |
| %5 = alloca %struct.Matrixf_t*, align 8 | |
| %6 = alloca i32, align 4 | |
| %7 = alloca i32, align 4 | |
| %8 = alloca float, align 4 | |
| %9 = alloca %struct.Matrixf_t*, align 8 | |
| %10 = alloca i8*, align 8 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %5, metadata !9175, metadata !DIExpression()), !dbg !9176 | |
| store i32 %1, i32* %6, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !9177, metadata !DIExpression()), !dbg !9178 | |
| store i32 %2, i32* %7, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !9179, metadata !DIExpression()), !dbg !9180 | |
| store float %3, float* %8, align 4 | |
| call void @llvm.dbg.declare(metadata float* %8, metadata !9181, metadata !DIExpression()), !dbg !9182 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %9, metadata !9183, metadata !DIExpression()), !dbg !9184 | |
| %11 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9185 | |
| %12 = bitcast %struct.Matrixf_t* %11 to i8*, !dbg !9185 | |
| %13 = load i32, i32* %6, align 4, !dbg !9186 | |
| %14 = zext i32 %13 to i64, !dbg !9186 | |
| %15 = mul i64 4, %14, !dbg !9187 | |
| %16 = load i32, i32* %7, align 4, !dbg !9188 | |
| %17 = zext i32 %16 to i64, !dbg !9188 | |
| %18 = mul i64 %15, %17, !dbg !9189 | |
| %19 = add i64 16, %18, !dbg !9190 | |
| %20 = call i8* @realloc(i8* %12, i64 %19) #7, !dbg !9191 | |
| %21 = bitcast i8* %20 to %struct.Matrixf_t*, !dbg !9192 | |
| store %struct.Matrixf_t* %21, %struct.Matrixf_t** %9, align 8, !dbg !9184 | |
| %22 = load %struct.Matrixf_t*, %struct.Matrixf_t** %9, align 8, !dbg !9193 | |
| %23 = icmp ne %struct.Matrixf_t* %22, null, !dbg !9193 | |
| br i1 %23, label %24, label %37, !dbg !9195 | |
| 24: ; preds = %4 | |
| call void @llvm.dbg.declare(metadata i8** %10, metadata !9196, metadata !DIExpression()), !dbg !9198 | |
| %25 = load %struct.Matrixf_t*, %struct.Matrixf_t** %9, align 8, !dbg !9199 | |
| %26 = bitcast %struct.Matrixf_t* %25 to i8*, !dbg !9200 | |
| store i8* %26, i8** %10, align 8, !dbg !9198 | |
| %27 = load i8*, i8** %10, align 8, !dbg !9201 | |
| %28 = getelementptr inbounds i8, i8* %27, i64 16, !dbg !9201 | |
| store i8* %28, i8** %10, align 8, !dbg !9201 | |
| %29 = load i8*, i8** %10, align 8, !dbg !9202 | |
| %30 = bitcast i8* %29 to float*, !dbg !9203 | |
| %31 = load %struct.Matrixf_t*, %struct.Matrixf_t** %9, align 8, !dbg !9204 | |
| %32 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %31, i32 0, i32 2, !dbg !9205 | |
| store float* %30, float** %32, align 8, !dbg !9206 | |
| %33 = load %struct.Matrixf_t*, %struct.Matrixf_t** %9, align 8, !dbg !9207 | |
| %34 = load i32, i32* %6, align 4, !dbg !9208 | |
| %35 = load i32, i32* %7, align 4, !dbg !9209 | |
| %36 = load float, float* %8, align 4, !dbg !9210 | |
| call void @matrixChangeSizef(%struct.Matrixf_t* %33, i32 %34, i32 %35, float %36), !dbg !9211 | |
| br label %37, !dbg !9212 | |
| 37: ; preds = %24, %4 | |
| %38 = load %struct.Matrixf_t*, %struct.Matrixf_t** %9, align 8, !dbg !9213 | |
| ret %struct.Matrixf_t* %38, !dbg !9214 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @matrixChangeSizef(%struct.Matrixf_t* %0, i32 %1, i32 %2, float %3) #0 !dbg !9215 { | |
| %5 = alloca %struct.Matrixf_t*, align 8 | |
| %6 = alloca i32, align 4 | |
| %7 = alloca i32, align 4 | |
| %8 = alloca float, align 4 | |
| %9 = alloca %struct.Matrixf_t, align 8 | |
| %10 = alloca i32, align 4 | |
| %11 = alloca i32, align 4 | |
| %12 = alloca i32, align 4 | |
| %13 = alloca i32, align 4 | |
| %14 = alloca i32, align 4 | |
| %15 = alloca i32, align 4 | |
| %16 = alloca i32, align 4 | |
| %17 = alloca i32, align 4 | |
| %18 = alloca i32, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %5, metadata !9216, metadata !DIExpression()), !dbg !9217 | |
| store i32 %1, i32* %6, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !9218, metadata !DIExpression()), !dbg !9219 | |
| store i32 %2, i32* %7, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !9220, metadata !DIExpression()), !dbg !9221 | |
| store float %3, float* %8, align 4 | |
| call void @llvm.dbg.declare(metadata float* %8, metadata !9222, metadata !DIExpression()), !dbg !9223 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t* %9, metadata !9224, metadata !DIExpression()), !dbg !9225 | |
| %19 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9226 | |
| %20 = bitcast %struct.Matrixf_t* %9 to i8*, !dbg !9227 | |
| %21 = bitcast %struct.Matrixf_t* %19 to i8*, !dbg !9227 | |
| call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %20, i8* align 8 %21, i64 16, i1 false), !dbg !9227 | |
| %22 = load i32, i32* %7, align 4, !dbg !9228 | |
| %23 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 1, !dbg !9229 | |
| store i32 %22, i32* %23, align 4, !dbg !9230 | |
| %24 = load i32, i32* %6, align 4, !dbg !9231 | |
| %25 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 0, !dbg !9232 | |
| store i32 %24, i32* %25, align 8, !dbg !9233 | |
| %26 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 1, !dbg !9234 | |
| %27 = load i32, i32* %26, align 4, !dbg !9234 | |
| %28 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9236 | |
| %29 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %28, i32 0, i32 1, !dbg !9237 | |
| %30 = load i32, i32* %29, align 4, !dbg !9237 | |
| %31 = icmp ugt i32 %27, %30, !dbg !9238 | |
| br i1 %31, label %32, label %135, !dbg !9239 | |
| 32: ; preds = %4 | |
| call void @llvm.dbg.declare(metadata i32* %10, metadata !9240, metadata !DIExpression()), !dbg !9242 | |
| %33 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9243 | |
| %34 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %33, i32 0, i32 0, !dbg !9244 | |
| %35 = load i32, i32* %34, align 8, !dbg !9244 | |
| %36 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 0, !dbg !9245 | |
| %37 = load i32, i32* %36, align 8, !dbg !9245 | |
| %38 = icmp ult i32 %35, %37, !dbg !9246 | |
| br i1 %38, label %39, label %43, !dbg !9247 | |
| 39: ; preds = %32 | |
| %40 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9248 | |
| %41 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %40, i32 0, i32 0, !dbg !9249 | |
| %42 = load i32, i32* %41, align 8, !dbg !9249 | |
| br label %46, !dbg !9247 | |
| 43: ; preds = %32 | |
| %44 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 0, !dbg !9250 | |
| %45 = load i32, i32* %44, align 8, !dbg !9250 | |
| br label %46, !dbg !9247 | |
| 46: ; preds = %43, %39 | |
| %47 = phi i32 [ %42, %39 ], [ %45, %43 ], !dbg !9247 | |
| store i32 %47, i32* %10, align 4, !dbg !9242 | |
| call void @llvm.dbg.declare(metadata i32* %11, metadata !9251, metadata !DIExpression()), !dbg !9252 | |
| call void @llvm.dbg.declare(metadata i32* %12, metadata !9253, metadata !DIExpression()), !dbg !9254 | |
| %48 = load i32, i32* %10, align 4, !dbg !9255 | |
| %49 = sub i32 %48, 1, !dbg !9257 | |
| store i32 %49, i32* %11, align 4, !dbg !9258 | |
| br label %50, !dbg !9259 | |
| 50: ; preds = %107, %46 | |
| %51 = load i32, i32* %11, align 4, !dbg !9260 | |
| %52 = icmp sgt i32 %51, 0, !dbg !9262 | |
| br i1 %52, label %53, label %110, !dbg !9263 | |
| 53: ; preds = %50 | |
| %54 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 1, !dbg !9264 | |
| %55 = load i32, i32* %54, align 4, !dbg !9264 | |
| %56 = sub i32 %55, 1, !dbg !9267 | |
| store i32 %56, i32* %12, align 4, !dbg !9268 | |
| br label %57, !dbg !9269 | |
| 57: ; preds = %103, %53 | |
| %58 = load i32, i32* %12, align 4, !dbg !9270 | |
| %59 = icmp sge i32 %58, 0, !dbg !9272 | |
| br i1 %59, label %60, label %106, !dbg !9273 | |
| 60: ; preds = %57 | |
| %61 = load i32, i32* %12, align 4, !dbg !9274 | |
| %62 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9277 | |
| %63 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %62, i32 0, i32 1, !dbg !9278 | |
| %64 = load i32, i32* %63, align 4, !dbg !9278 | |
| %65 = icmp sge i32 %61, %64, !dbg !9279 | |
| br i1 %65, label %66, label %78, !dbg !9280 | |
| 66: ; preds = %60 | |
| %67 = load float, float* %8, align 4, !dbg !9281 | |
| %68 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 2, !dbg !9281 | |
| %69 = load float*, float** %68, align 8, !dbg !9281 | |
| %70 = load i32, i32* %11, align 4, !dbg !9281 | |
| %71 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 1, !dbg !9281 | |
| %72 = load i32, i32* %71, align 4, !dbg !9281 | |
| %73 = mul i32 %70, %72, !dbg !9281 | |
| %74 = load i32, i32* %12, align 4, !dbg !9281 | |
| %75 = add i32 %73, %74, !dbg !9281 | |
| %76 = zext i32 %75 to i64, !dbg !9281 | |
| %77 = getelementptr inbounds float, float* %69, i64 %76, !dbg !9281 | |
| store float %67, float* %77, align 4, !dbg !9281 | |
| br label %102, !dbg !9281 | |
| 78: ; preds = %60 | |
| %79 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9282 | |
| %80 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %79, i32 0, i32 2, !dbg !9282 | |
| %81 = load float*, float** %80, align 8, !dbg !9282 | |
| %82 = load i32, i32* %11, align 4, !dbg !9282 | |
| %83 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9282 | |
| %84 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %83, i32 0, i32 1, !dbg !9282 | |
| %85 = load i32, i32* %84, align 4, !dbg !9282 | |
| %86 = mul i32 %82, %85, !dbg !9282 | |
| %87 = load i32, i32* %12, align 4, !dbg !9282 | |
| %88 = add i32 %86, %87, !dbg !9282 | |
| %89 = zext i32 %88 to i64, !dbg !9282 | |
| %90 = getelementptr inbounds float, float* %81, i64 %89, !dbg !9282 | |
| %91 = load float, float* %90, align 4, !dbg !9282 | |
| %92 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 2, !dbg !9282 | |
| %93 = load float*, float** %92, align 8, !dbg !9282 | |
| %94 = load i32, i32* %11, align 4, !dbg !9282 | |
| %95 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 1, !dbg !9282 | |
| %96 = load i32, i32* %95, align 4, !dbg !9282 | |
| %97 = mul i32 %94, %96, !dbg !9282 | |
| %98 = load i32, i32* %12, align 4, !dbg !9282 | |
| %99 = add i32 %97, %98, !dbg !9282 | |
| %100 = zext i32 %99 to i64, !dbg !9282 | |
| %101 = getelementptr inbounds float, float* %93, i64 %100, !dbg !9282 | |
| store float %91, float* %101, align 4, !dbg !9282 | |
| br label %102 | |
| 102: ; preds = %78, %66 | |
| br label %103, !dbg !9283 | |
| 103: ; preds = %102 | |
| %104 = load i32, i32* %12, align 4, !dbg !9284 | |
| %105 = add nsw i32 %104, -1, !dbg !9284 | |
| store i32 %105, i32* %12, align 4, !dbg !9284 | |
| br label %57, !dbg !9285, !llvm.loop !9286 | |
| 106: ; preds = %57 | |
| br label %107, !dbg !9288 | |
| 107: ; preds = %106 | |
| %108 = load i32, i32* %11, align 4, !dbg !9289 | |
| %109 = add nsw i32 %108, -1, !dbg !9289 | |
| store i32 %109, i32* %11, align 4, !dbg !9289 | |
| br label %50, !dbg !9290, !llvm.loop !9291 | |
| 110: ; preds = %50 | |
| %111 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 1, !dbg !9293 | |
| %112 = load i32, i32* %111, align 4, !dbg !9293 | |
| %113 = sub i32 %112, 1, !dbg !9295 | |
| store i32 %113, i32* %12, align 4, !dbg !9296 | |
| br label %114, !dbg !9297 | |
| 114: ; preds = %131, %110 | |
| %115 = load i32, i32* %12, align 4, !dbg !9298 | |
| %116 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9300 | |
| %117 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %116, i32 0, i32 1, !dbg !9301 | |
| %118 = load i32, i32* %117, align 4, !dbg !9301 | |
| %119 = icmp sge i32 %115, %118, !dbg !9302 | |
| br i1 %119, label %120, label %134, !dbg !9303 | |
| 120: ; preds = %114 | |
| %121 = load float, float* %8, align 4, !dbg !9304 | |
| %122 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 2, !dbg !9304 | |
| %123 = load float*, float** %122, align 8, !dbg !9304 | |
| %124 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 1, !dbg !9304 | |
| %125 = load i32, i32* %124, align 4, !dbg !9304 | |
| %126 = mul i32 0, %125, !dbg !9304 | |
| %127 = load i32, i32* %12, align 4, !dbg !9304 | |
| %128 = add i32 %126, %127, !dbg !9304 | |
| %129 = zext i32 %128 to i64, !dbg !9304 | |
| %130 = getelementptr inbounds float, float* %123, i64 %129, !dbg !9304 | |
| store float %121, float* %130, align 4, !dbg !9304 | |
| br label %131, !dbg !9304 | |
| 131: ; preds = %120 | |
| %132 = load i32, i32* %12, align 4, !dbg !9305 | |
| %133 = add nsw i32 %132, -1, !dbg !9305 | |
| store i32 %133, i32* %12, align 4, !dbg !9305 | |
| br label %114, !dbg !9306, !llvm.loop !9307 | |
| 134: ; preds = %114 | |
| br label %201, !dbg !9309 | |
| 135: ; preds = %4 | |
| %136 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 1, !dbg !9310 | |
| %137 = load i32, i32* %136, align 4, !dbg !9310 | |
| %138 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9312 | |
| %139 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %138, i32 0, i32 1, !dbg !9313 | |
| %140 = load i32, i32* %139, align 4, !dbg !9313 | |
| %141 = icmp ult i32 %137, %140, !dbg !9314 | |
| br i1 %141, label %142, label %200, !dbg !9315 | |
| 142: ; preds = %135 | |
| call void @llvm.dbg.declare(metadata i32* %13, metadata !9316, metadata !DIExpression()), !dbg !9318 | |
| %143 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9319 | |
| %144 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %143, i32 0, i32 0, !dbg !9320 | |
| %145 = load i32, i32* %144, align 8, !dbg !9320 | |
| %146 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 0, !dbg !9321 | |
| %147 = load i32, i32* %146, align 8, !dbg !9321 | |
| %148 = icmp ult i32 %145, %147, !dbg !9322 | |
| br i1 %148, label %149, label %153, !dbg !9323 | |
| 149: ; preds = %142 | |
| %150 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9324 | |
| %151 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %150, i32 0, i32 0, !dbg !9325 | |
| %152 = load i32, i32* %151, align 8, !dbg !9325 | |
| br label %156, !dbg !9323 | |
| 153: ; preds = %142 | |
| %154 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 0, !dbg !9326 | |
| %155 = load i32, i32* %154, align 8, !dbg !9326 | |
| br label %156, !dbg !9323 | |
| 156: ; preds = %153, %149 | |
| %157 = phi i32 [ %152, %149 ], [ %155, %153 ], !dbg !9323 | |
| store i32 %157, i32* %13, align 4, !dbg !9318 | |
| call void @llvm.dbg.declare(metadata i32* %14, metadata !9327, metadata !DIExpression()), !dbg !9328 | |
| call void @llvm.dbg.declare(metadata i32* %15, metadata !9329, metadata !DIExpression()), !dbg !9330 | |
| store i32 1, i32* %14, align 4, !dbg !9331 | |
| br label %158, !dbg !9333 | |
| 158: ; preds = %196, %156 | |
| %159 = load i32, i32* %14, align 4, !dbg !9334 | |
| %160 = load i32, i32* %13, align 4, !dbg !9336 | |
| %161 = icmp ult i32 %159, %160, !dbg !9337 | |
| br i1 %161, label %162, label %199, !dbg !9338 | |
| 162: ; preds = %158 | |
| store i32 0, i32* %15, align 4, !dbg !9339 | |
| br label %163, !dbg !9342 | |
| 163: ; preds = %192, %162 | |
| %164 = load i32, i32* %15, align 4, !dbg !9343 | |
| %165 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 1, !dbg !9345 | |
| %166 = load i32, i32* %165, align 4, !dbg !9345 | |
| %167 = icmp ult i32 %164, %166, !dbg !9346 | |
| br i1 %167, label %168, label %195, !dbg !9347 | |
| 168: ; preds = %163 | |
| %169 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9348 | |
| %170 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %169, i32 0, i32 2, !dbg !9348 | |
| %171 = load float*, float** %170, align 8, !dbg !9348 | |
| %172 = load i32, i32* %14, align 4, !dbg !9348 | |
| %173 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9348 | |
| %174 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %173, i32 0, i32 1, !dbg !9348 | |
| %175 = load i32, i32* %174, align 4, !dbg !9348 | |
| %176 = mul i32 %172, %175, !dbg !9348 | |
| %177 = load i32, i32* %15, align 4, !dbg !9348 | |
| %178 = add i32 %176, %177, !dbg !9348 | |
| %179 = zext i32 %178 to i64, !dbg !9348 | |
| %180 = getelementptr inbounds float, float* %171, i64 %179, !dbg !9348 | |
| %181 = load float, float* %180, align 4, !dbg !9348 | |
| %182 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 2, !dbg !9348 | |
| %183 = load float*, float** %182, align 8, !dbg !9348 | |
| %184 = load i32, i32* %14, align 4, !dbg !9348 | |
| %185 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 1, !dbg !9348 | |
| %186 = load i32, i32* %185, align 4, !dbg !9348 | |
| %187 = mul i32 %184, %186, !dbg !9348 | |
| %188 = load i32, i32* %15, align 4, !dbg !9348 | |
| %189 = add i32 %187, %188, !dbg !9348 | |
| %190 = zext i32 %189 to i64, !dbg !9348 | |
| %191 = getelementptr inbounds float, float* %183, i64 %190, !dbg !9348 | |
| store float %181, float* %191, align 4, !dbg !9348 | |
| br label %192, !dbg !9348 | |
| 192: ; preds = %168 | |
| %193 = load i32, i32* %15, align 4, !dbg !9349 | |
| %194 = add i32 %193, 1, !dbg !9349 | |
| store i32 %194, i32* %15, align 4, !dbg !9349 | |
| br label %163, !dbg !9350, !llvm.loop !9351 | |
| 195: ; preds = %163 | |
| br label %196, !dbg !9353 | |
| 196: ; preds = %195 | |
| %197 = load i32, i32* %14, align 4, !dbg !9354 | |
| %198 = add i32 %197, 1, !dbg !9354 | |
| store i32 %198, i32* %14, align 4, !dbg !9354 | |
| br label %158, !dbg !9355, !llvm.loop !9356 | |
| 199: ; preds = %158 | |
| br label %200, !dbg !9358 | |
| 200: ; preds = %199, %135 | |
| br label %201 | |
| 201: ; preds = %200, %134 | |
| call void @llvm.dbg.declare(metadata i32* %16, metadata !9359, metadata !DIExpression()), !dbg !9360 | |
| call void @llvm.dbg.declare(metadata i32* %17, metadata !9361, metadata !DIExpression()), !dbg !9362 | |
| call void @llvm.dbg.declare(metadata i32* %18, metadata !9363, metadata !DIExpression()), !dbg !9364 | |
| %202 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 0, !dbg !9365 | |
| %203 = load i32, i32* %202, align 8, !dbg !9365 | |
| %204 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9367 | |
| %205 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %204, i32 0, i32 0, !dbg !9368 | |
| %206 = load i32, i32* %205, align 8, !dbg !9368 | |
| %207 = icmp ugt i32 %203, %206, !dbg !9369 | |
| br i1 %207, label %208, label %243, !dbg !9370 | |
| 208: ; preds = %201 | |
| %209 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9371 | |
| %210 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %209, i32 0, i32 0, !dbg !9374 | |
| %211 = load i32, i32* %210, align 8, !dbg !9374 | |
| store i32 %211, i32* %16, align 4, !dbg !9375 | |
| br label %212, !dbg !9376 | |
| 212: ; preds = %239, %208 | |
| %213 = load i32, i32* %16, align 4, !dbg !9377 | |
| %214 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 0, !dbg !9379 | |
| %215 = load i32, i32* %214, align 8, !dbg !9379 | |
| %216 = icmp ult i32 %213, %215, !dbg !9380 | |
| br i1 %216, label %217, label %242, !dbg !9381 | |
| 217: ; preds = %212 | |
| store i32 0, i32* %17, align 4, !dbg !9382 | |
| br label %218, !dbg !9384 | |
| 218: ; preds = %235, %217 | |
| %219 = load i32, i32* %17, align 4, !dbg !9385 | |
| %220 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 1, !dbg !9387 | |
| %221 = load i32, i32* %220, align 4, !dbg !9387 | |
| %222 = icmp ult i32 %219, %221, !dbg !9388 | |
| br i1 %222, label %223, label %238, !dbg !9389 | |
| 223: ; preds = %218 | |
| %224 = load float, float* %8, align 4, !dbg !9390 | |
| %225 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 2, !dbg !9390 | |
| %226 = load float*, float** %225, align 8, !dbg !9390 | |
| %227 = load i32, i32* %16, align 4, !dbg !9390 | |
| %228 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 1, !dbg !9390 | |
| %229 = load i32, i32* %228, align 4, !dbg !9390 | |
| %230 = mul i32 %227, %229, !dbg !9390 | |
| %231 = load i32, i32* %17, align 4, !dbg !9390 | |
| %232 = add i32 %230, %231, !dbg !9390 | |
| %233 = zext i32 %232 to i64, !dbg !9390 | |
| %234 = getelementptr inbounds float, float* %226, i64 %233, !dbg !9390 | |
| store float %224, float* %234, align 4, !dbg !9390 | |
| br label %235, !dbg !9390 | |
| 235: ; preds = %223 | |
| %236 = load i32, i32* %17, align 4, !dbg !9391 | |
| %237 = add i32 %236, 1, !dbg !9391 | |
| store i32 %237, i32* %17, align 4, !dbg !9391 | |
| br label %218, !dbg !9392, !llvm.loop !9393 | |
| 238: ; preds = %218 | |
| br label %239, !dbg !9394 | |
| 239: ; preds = %238 | |
| %240 = load i32, i32* %16, align 4, !dbg !9395 | |
| %241 = add i32 %240, 1, !dbg !9395 | |
| store i32 %241, i32* %16, align 4, !dbg !9395 | |
| br label %212, !dbg !9396, !llvm.loop !9397 | |
| 242: ; preds = %212 | |
| br label %243, !dbg !9399 | |
| 243: ; preds = %242, %201 | |
| %244 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 0, !dbg !9400 | |
| %245 = load i32, i32* %244, align 8, !dbg !9400 | |
| %246 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 1, !dbg !9402 | |
| %247 = load i32, i32* %246, align 4, !dbg !9402 | |
| %248 = mul i32 %245, %247, !dbg !9403 | |
| %249 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9404 | |
| %250 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %249, i32 0, i32 0, !dbg !9405 | |
| %251 = load i32, i32* %250, align 8, !dbg !9405 | |
| %252 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9406 | |
| %253 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %252, i32 0, i32 1, !dbg !9407 | |
| %254 = load i32, i32* %253, align 4, !dbg !9407 | |
| %255 = mul i32 %251, %254, !dbg !9408 | |
| %256 = icmp ult i32 %248, %255, !dbg !9409 | |
| br i1 %256, label %257, label %284, !dbg !9410 | |
| 257: ; preds = %243 | |
| %258 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 0, !dbg !9411 | |
| %259 = load i32, i32* %258, align 8, !dbg !9411 | |
| %260 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 1, !dbg !9414 | |
| %261 = load i32, i32* %260, align 4, !dbg !9414 | |
| %262 = mul i32 %259, %261, !dbg !9415 | |
| store i32 %262, i32* %18, align 4, !dbg !9416 | |
| br label %263, !dbg !9417 | |
| 263: ; preds = %280, %257 | |
| %264 = load i32, i32* %18, align 4, !dbg !9418 | |
| %265 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9420 | |
| %266 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %265, i32 0, i32 0, !dbg !9421 | |
| %267 = load i32, i32* %266, align 8, !dbg !9421 | |
| %268 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9422 | |
| %269 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %268, i32 0, i32 1, !dbg !9423 | |
| %270 = load i32, i32* %269, align 4, !dbg !9423 | |
| %271 = mul i32 %267, %270, !dbg !9424 | |
| %272 = icmp ult i32 %264, %271, !dbg !9425 | |
| br i1 %272, label %273, label %283, !dbg !9426 | |
| 273: ; preds = %263 | |
| %274 = load float, float* %8, align 4, !dbg !9427 | |
| %275 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 2, !dbg !9428 | |
| %276 = load float*, float** %275, align 8, !dbg !9428 | |
| %277 = load i32, i32* %18, align 4, !dbg !9429 | |
| %278 = zext i32 %277 to i64, !dbg !9430 | |
| %279 = getelementptr inbounds float, float* %276, i64 %278, !dbg !9430 | |
| store float %274, float* %279, align 4, !dbg !9431 | |
| br label %280, !dbg !9430 | |
| 280: ; preds = %273 | |
| %281 = load i32, i32* %18, align 4, !dbg !9432 | |
| %282 = add i32 %281, 1, !dbg !9432 | |
| store i32 %282, i32* %18, align 4, !dbg !9432 | |
| br label %263, !dbg !9433, !llvm.loop !9434 | |
| 283: ; preds = %263 | |
| br label %284, !dbg !9436 | |
| 284: ; preds = %283, %243 | |
| %285 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9437 | |
| %286 = bitcast %struct.Matrixf_t* %285 to i8*, !dbg !9438 | |
| %287 = bitcast %struct.Matrixf_t* %9 to i8*, !dbg !9438 | |
| call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %286, i8* align 8 %287, i64 16, i1 false), !dbg !9438 | |
| ret void, !dbg !9439 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @matrixSetIdentityf(%struct.Matrixf_t* %0) #0 !dbg !9440 { | |
| %2 = alloca %struct.Matrixf_t*, align 8 | |
| %3 = alloca i32, align 4 | |
| %4 = alloca i32, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %2, metadata !9441, metadata !DIExpression()), !dbg !9442 | |
| call void @llvm.dbg.declare(metadata i32* %3, metadata !9443, metadata !DIExpression()), !dbg !9444 | |
| call void @llvm.dbg.declare(metadata i32* %4, metadata !9445, metadata !DIExpression()), !dbg !9446 | |
| store i32 0, i32* %3, align 4, !dbg !9447 | |
| br label %5, !dbg !9449 | |
| 5: ; preds = %53, %1 | |
| %6 = load i32, i32* %3, align 4, !dbg !9450 | |
| %7 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !9452 | |
| %8 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %7, i32 0, i32 0, !dbg !9453 | |
| %9 = load i32, i32* %8, align 8, !dbg !9453 | |
| %10 = icmp ult i32 %6, %9, !dbg !9454 | |
| br i1 %10, label %11, label %56, !dbg !9455 | |
| 11: ; preds = %5 | |
| store i32 0, i32* %4, align 4, !dbg !9456 | |
| br label %12, !dbg !9459 | |
| 12: ; preds = %49, %11 | |
| %13 = load i32, i32* %4, align 4, !dbg !9460 | |
| %14 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !9462 | |
| %15 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %14, i32 0, i32 1, !dbg !9463 | |
| %16 = load i32, i32* %15, align 4, !dbg !9463 | |
| %17 = icmp ult i32 %13, %16, !dbg !9464 | |
| br i1 %17, label %18, label %52, !dbg !9465 | |
| 18: ; preds = %12 | |
| %19 = load i32, i32* %3, align 4, !dbg !9466 | |
| %20 = load i32, i32* %4, align 4, !dbg !9469 | |
| %21 = icmp eq i32 %19, %20, !dbg !9470 | |
| br i1 %21, label %22, label %35, !dbg !9471 | |
| 22: ; preds = %18 | |
| %23 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !9472 | |
| %24 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %23, i32 0, i32 2, !dbg !9472 | |
| %25 = load float*, float** %24, align 8, !dbg !9472 | |
| %26 = load i32, i32* %3, align 4, !dbg !9472 | |
| %27 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !9472 | |
| %28 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %27, i32 0, i32 1, !dbg !9472 | |
| %29 = load i32, i32* %28, align 4, !dbg !9472 | |
| %30 = mul i32 %26, %29, !dbg !9472 | |
| %31 = load i32, i32* %4, align 4, !dbg !9472 | |
| %32 = add i32 %30, %31, !dbg !9472 | |
| %33 = zext i32 %32 to i64, !dbg !9472 | |
| %34 = getelementptr inbounds float, float* %25, i64 %33, !dbg !9472 | |
| store float 1.000000e+00, float* %34, align 4, !dbg !9472 | |
| br label %48, !dbg !9472 | |
| 35: ; preds = %18 | |
| %36 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !9473 | |
| %37 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %36, i32 0, i32 2, !dbg !9473 | |
| %38 = load float*, float** %37, align 8, !dbg !9473 | |
| %39 = load i32, i32* %3, align 4, !dbg !9473 | |
| %40 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !9473 | |
| %41 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %40, i32 0, i32 1, !dbg !9473 | |
| %42 = load i32, i32* %41, align 4, !dbg !9473 | |
| %43 = mul i32 %39, %42, !dbg !9473 | |
| %44 = load i32, i32* %4, align 4, !dbg !9473 | |
| %45 = add i32 %43, %44, !dbg !9473 | |
| %46 = zext i32 %45 to i64, !dbg !9473 | |
| %47 = getelementptr inbounds float, float* %38, i64 %46, !dbg !9473 | |
| store float 0.000000e+00, float* %47, align 4, !dbg !9473 | |
| br label %48 | |
| 48: ; preds = %35, %22 | |
| br label %49, !dbg !9474 | |
| 49: ; preds = %48 | |
| %50 = load i32, i32* %4, align 4, !dbg !9475 | |
| %51 = add i32 %50, 1, !dbg !9475 | |
| store i32 %51, i32* %4, align 4, !dbg !9475 | |
| br label %12, !dbg !9476, !llvm.loop !9477 | |
| 52: ; preds = %12 | |
| br label %53, !dbg !9479 | |
| 53: ; preds = %52 | |
| %54 = load i32, i32* %3, align 4, !dbg !9480 | |
| %55 = add i32 %54, 1, !dbg !9480 | |
| store i32 %55, i32* %3, align 4, !dbg !9480 | |
| br label %5, !dbg !9481, !llvm.loop !9482 | |
| 56: ; preds = %5 | |
| ret void, !dbg !9484 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixCopyf(%struct.Matrixf_t* %0, %struct.Matrixf_t* %1) #0 !dbg !9485 { | |
| %3 = alloca i64, align 8 | |
| %4 = alloca %struct.Matrixf_t*, align 8 | |
| %5 = alloca %struct.Matrixf_t*, align 8 | |
| %6 = alloca i32, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %4, metadata !9488, metadata !DIExpression()), !dbg !9489 | |
| store %struct.Matrixf_t* %1, %struct.Matrixf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %5, metadata !9490, metadata !DIExpression()), !dbg !9491 | |
| %7 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !9492 | |
| %8 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %7, i32 0, i32 1, !dbg !9494 | |
| %9 = load i32, i32* %8, align 4, !dbg !9494 | |
| %10 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9495 | |
| %11 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %10, i32 0, i32 1, !dbg !9496 | |
| %12 = load i32, i32* %11, align 4, !dbg !9496 | |
| %13 = icmp eq i32 %9, %12, !dbg !9497 | |
| br i1 %13, label %14, label %51, !dbg !9498 | |
| 14: ; preds = %2 | |
| %15 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !9499 | |
| %16 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %15, i32 0, i32 0, !dbg !9500 | |
| %17 = load i32, i32* %16, align 8, !dbg !9500 | |
| %18 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9501 | |
| %19 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %18, i32 0, i32 0, !dbg !9502 | |
| %20 = load i32, i32* %19, align 8, !dbg !9502 | |
| %21 = icmp eq i32 %17, %20, !dbg !9503 | |
| br i1 %21, label %22, label %51, !dbg !9504 | |
| 22: ; preds = %14 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !9505, metadata !DIExpression()), !dbg !9507 | |
| store i32 0, i32* %6, align 4, !dbg !9508 | |
| br label %23, !dbg !9510 | |
| 23: ; preds = %47, %22 | |
| %24 = load i32, i32* %6, align 4, !dbg !9511 | |
| %25 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !9513 | |
| %26 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %25, i32 0, i32 1, !dbg !9514 | |
| %27 = load i32, i32* %26, align 4, !dbg !9514 | |
| %28 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !9515 | |
| %29 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %28, i32 0, i32 0, !dbg !9516 | |
| %30 = load i32, i32* %29, align 8, !dbg !9516 | |
| %31 = mul i32 %27, %30, !dbg !9517 | |
| %32 = icmp ult i32 %24, %31, !dbg !9518 | |
| br i1 %32, label %33, label %50, !dbg !9519 | |
| 33: ; preds = %23 | |
| %34 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !9520 | |
| %35 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %34, i32 0, i32 2, !dbg !9521 | |
| %36 = load float*, float** %35, align 8, !dbg !9521 | |
| %37 = load i32, i32* %6, align 4, !dbg !9522 | |
| %38 = zext i32 %37 to i64, !dbg !9520 | |
| %39 = getelementptr inbounds float, float* %36, i64 %38, !dbg !9520 | |
| %40 = load float, float* %39, align 4, !dbg !9520 | |
| %41 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9523 | |
| %42 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %41, i32 0, i32 2, !dbg !9524 | |
| %43 = load float*, float** %42, align 8, !dbg !9524 | |
| %44 = load i32, i32* %6, align 4, !dbg !9525 | |
| %45 = zext i32 %44 to i64, !dbg !9523 | |
| %46 = getelementptr inbounds float, float* %43, i64 %45, !dbg !9523 | |
| store float %40, float* %46, align 4, !dbg !9526 | |
| br label %47, !dbg !9523 | |
| 47: ; preds = %33 | |
| %48 = load i32, i32* %6, align 4, !dbg !9527 | |
| %49 = add i32 %48, 1, !dbg !9527 | |
| store i32 %49, i32* %6, align 4, !dbg !9527 | |
| br label %23, !dbg !9528, !llvm.loop !9529 | |
| 50: ; preds = %23 | |
| store i64 1, i64* %3, align 8, !dbg !9531 | |
| br label %52, !dbg !9531 | |
| 51: ; preds = %14, %2 | |
| store i64 0, i64* %3, align 8, !dbg !9532 | |
| br label %52, !dbg !9532 | |
| 52: ; preds = %51, %50 | |
| %53 = load i64, i64* %3, align 8, !dbg !9533 | |
| ret i64 %53, !dbg !9533 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @matrixSetRowf(%struct.Matrixf_t* %0, i32 %1, float %2) #0 !dbg !9534 { | |
| %4 = alloca %struct.Matrixf_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca float, align 4 | |
| %7 = alloca i32, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %4, metadata !9537, metadata !DIExpression()), !dbg !9538 | |
| store i32 %1, i32* %5, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !9539, metadata !DIExpression()), !dbg !9540 | |
| store float %2, float* %6, align 4 | |
| call void @llvm.dbg.declare(metadata float* %6, metadata !9541, metadata !DIExpression()), !dbg !9542 | |
| %8 = load i32, i32* %5, align 4, !dbg !9543 | |
| %9 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !9545 | |
| %10 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 0, !dbg !9546 | |
| %11 = load i32, i32* %10, align 8, !dbg !9546 | |
| %12 = icmp ult i32 %8, %11, !dbg !9547 | |
| br i1 %12, label %13, label %38, !dbg !9548 | |
| 13: ; preds = %3 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !9549, metadata !DIExpression()), !dbg !9551 | |
| store i32 0, i32* %7, align 4, !dbg !9552 | |
| br label %14, !dbg !9554 | |
| 14: ; preds = %34, %13 | |
| %15 = load i32, i32* %7, align 4, !dbg !9555 | |
| %16 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !9557 | |
| %17 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %16, i32 0, i32 1, !dbg !9558 | |
| %18 = load i32, i32* %17, align 4, !dbg !9558 | |
| %19 = icmp ult i32 %15, %18, !dbg !9559 | |
| br i1 %19, label %20, label %37, !dbg !9560 | |
| 20: ; preds = %14 | |
| %21 = load float, float* %6, align 4, !dbg !9561 | |
| %22 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !9561 | |
| %23 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %22, i32 0, i32 2, !dbg !9561 | |
| %24 = load float*, float** %23, align 8, !dbg !9561 | |
| %25 = load i32, i32* %5, align 4, !dbg !9561 | |
| %26 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !9561 | |
| %27 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %26, i32 0, i32 1, !dbg !9561 | |
| %28 = load i32, i32* %27, align 4, !dbg !9561 | |
| %29 = mul i32 %25, %28, !dbg !9561 | |
| %30 = load i32, i32* %7, align 4, !dbg !9561 | |
| %31 = add i32 %29, %30, !dbg !9561 | |
| %32 = zext i32 %31 to i64, !dbg !9561 | |
| %33 = getelementptr inbounds float, float* %24, i64 %32, !dbg !9561 | |
| store float %21, float* %33, align 4, !dbg !9561 | |
| br label %34, !dbg !9561 | |
| 34: ; preds = %20 | |
| %35 = load i32, i32* %7, align 4, !dbg !9562 | |
| %36 = add i32 %35, 1, !dbg !9562 | |
| store i32 %36, i32* %7, align 4, !dbg !9562 | |
| br label %14, !dbg !9563, !llvm.loop !9564 | |
| 37: ; preds = %14 | |
| br label %38, !dbg !9566 | |
| 38: ; preds = %37, %3 | |
| ret void, !dbg !9567 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @matrixSetColumnf(%struct.Matrixf_t* %0, i32 %1, float %2) #0 !dbg !9568 { | |
| %4 = alloca %struct.Matrixf_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca float, align 4 | |
| %7 = alloca i32, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %4, metadata !9569, metadata !DIExpression()), !dbg !9570 | |
| store i32 %1, i32* %5, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !9571, metadata !DIExpression()), !dbg !9572 | |
| store float %2, float* %6, align 4 | |
| call void @llvm.dbg.declare(metadata float* %6, metadata !9573, metadata !DIExpression()), !dbg !9574 | |
| %8 = load i32, i32* %5, align 4, !dbg !9575 | |
| %9 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !9577 | |
| %10 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 1, !dbg !9578 | |
| %11 = load i32, i32* %10, align 4, !dbg !9578 | |
| %12 = icmp ult i32 %8, %11, !dbg !9579 | |
| br i1 %12, label %13, label %38, !dbg !9580 | |
| 13: ; preds = %3 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !9581, metadata !DIExpression()), !dbg !9583 | |
| store i32 0, i32* %7, align 4, !dbg !9584 | |
| br label %14, !dbg !9586 | |
| 14: ; preds = %34, %13 | |
| %15 = load i32, i32* %7, align 4, !dbg !9587 | |
| %16 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !9589 | |
| %17 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %16, i32 0, i32 0, !dbg !9590 | |
| %18 = load i32, i32* %17, align 8, !dbg !9590 | |
| %19 = icmp ult i32 %15, %18, !dbg !9591 | |
| br i1 %19, label %20, label %37, !dbg !9592 | |
| 20: ; preds = %14 | |
| %21 = load float, float* %6, align 4, !dbg !9593 | |
| %22 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !9593 | |
| %23 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %22, i32 0, i32 2, !dbg !9593 | |
| %24 = load float*, float** %23, align 8, !dbg !9593 | |
| %25 = load i32, i32* %7, align 4, !dbg !9593 | |
| %26 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !9593 | |
| %27 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %26, i32 0, i32 1, !dbg !9593 | |
| %28 = load i32, i32* %27, align 4, !dbg !9593 | |
| %29 = mul i32 %25, %28, !dbg !9593 | |
| %30 = load i32, i32* %5, align 4, !dbg !9593 | |
| %31 = add i32 %29, %30, !dbg !9593 | |
| %32 = zext i32 %31 to i64, !dbg !9593 | |
| %33 = getelementptr inbounds float, float* %24, i64 %32, !dbg !9593 | |
| store float %21, float* %33, align 4, !dbg !9593 | |
| br label %34, !dbg !9593 | |
| 34: ; preds = %20 | |
| %35 = load i32, i32* %7, align 4, !dbg !9594 | |
| %36 = add i32 %35, 1, !dbg !9594 | |
| store i32 %36, i32* %7, align 4, !dbg !9594 | |
| br label %14, !dbg !9595, !llvm.loop !9596 | |
| 37: ; preds = %14 | |
| br label %38, !dbg !9598 | |
| 38: ; preds = %37, %3 | |
| ret void, !dbg !9599 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixMultiplyf(%struct.Matrixf_t* %0, %struct.Matrixf_t* %1, %struct.Matrixf_t* %2) #0 !dbg !9600 { | |
| %4 = alloca i64, align 8 | |
| %5 = alloca %struct.Matrixf_t*, align 8 | |
| %6 = alloca %struct.Matrixf_t*, align 8 | |
| %7 = alloca %struct.Matrixf_t*, align 8 | |
| %8 = alloca i32, align 4 | |
| %9 = alloca i32, align 4 | |
| %10 = alloca i32, align 4 | |
| %11 = alloca float, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %5, metadata !9603, metadata !DIExpression()), !dbg !9604 | |
| store %struct.Matrixf_t* %1, %struct.Matrixf_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %6, metadata !9605, metadata !DIExpression()), !dbg !9606 | |
| store %struct.Matrixf_t* %2, %struct.Matrixf_t** %7, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %7, metadata !9607, metadata !DIExpression()), !dbg !9608 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !9609, metadata !DIExpression()), !dbg !9610 | |
| call void @llvm.dbg.declare(metadata i32* %9, metadata !9611, metadata !DIExpression()), !dbg !9612 | |
| call void @llvm.dbg.declare(metadata i32* %10, metadata !9613, metadata !DIExpression()), !dbg !9614 | |
| %12 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9615 | |
| %13 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %12, i32 0, i32 1, !dbg !9617 | |
| %14 = load i32, i32* %13, align 4, !dbg !9617 | |
| %15 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !9618 | |
| %16 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %15, i32 0, i32 0, !dbg !9619 | |
| %17 = load i32, i32* %16, align 8, !dbg !9619 | |
| %18 = icmp ne i32 %14, %17, !dbg !9620 | |
| br i1 %18, label %35, label %19, !dbg !9621 | |
| 19: ; preds = %3 | |
| %20 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9622 | |
| %21 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %20, i32 0, i32 0, !dbg !9623 | |
| %22 = load i32, i32* %21, align 8, !dbg !9623 | |
| %23 = load %struct.Matrixf_t*, %struct.Matrixf_t** %7, align 8, !dbg !9624 | |
| %24 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %23, i32 0, i32 0, !dbg !9625 | |
| %25 = load i32, i32* %24, align 8, !dbg !9625 | |
| %26 = icmp ne i32 %22, %25, !dbg !9626 | |
| br i1 %26, label %35, label %27, !dbg !9627 | |
| 27: ; preds = %19 | |
| %28 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !9628 | |
| %29 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %28, i32 0, i32 1, !dbg !9629 | |
| %30 = load i32, i32* %29, align 4, !dbg !9629 | |
| %31 = load %struct.Matrixf_t*, %struct.Matrixf_t** %7, align 8, !dbg !9630 | |
| %32 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %31, i32 0, i32 1, !dbg !9631 | |
| %33 = load i32, i32* %32, align 4, !dbg !9631 | |
| %34 = icmp ne i32 %30, %33, !dbg !9632 | |
| br i1 %34, label %35, label %36, !dbg !9633 | |
| 35: ; preds = %27, %19, %3 | |
| store i64 0, i64* %4, align 8, !dbg !9634 | |
| br label %112, !dbg !9634 | |
| 36: ; preds = %27 | |
| store i32 0, i32* %8, align 4, !dbg !9635 | |
| br label %37, !dbg !9637 | |
| 37: ; preds = %108, %36 | |
| %38 = load i32, i32* %8, align 4, !dbg !9638 | |
| %39 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9640 | |
| %40 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %39, i32 0, i32 0, !dbg !9641 | |
| %41 = load i32, i32* %40, align 8, !dbg !9641 | |
| %42 = icmp ult i32 %38, %41, !dbg !9642 | |
| br i1 %42, label %43, label %111, !dbg !9643 | |
| 43: ; preds = %37 | |
| store i32 0, i32* %9, align 4, !dbg !9644 | |
| br label %44, !dbg !9647 | |
| 44: ; preds = %104, %43 | |
| %45 = load i32, i32* %9, align 4, !dbg !9648 | |
| %46 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !9650 | |
| %47 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %46, i32 0, i32 1, !dbg !9651 | |
| %48 = load i32, i32* %47, align 4, !dbg !9651 | |
| %49 = icmp ult i32 %45, %48, !dbg !9652 | |
| br i1 %49, label %50, label %107, !dbg !9653 | |
| 50: ; preds = %44 | |
| call void @llvm.dbg.declare(metadata float* %11, metadata !9654, metadata !DIExpression()), !dbg !9656 | |
| store float 0.000000e+00, float* %11, align 4, !dbg !9656 | |
| store i32 0, i32* %10, align 4, !dbg !9657 | |
| br label %51, !dbg !9659 | |
| 51: ; preds = %87, %50 | |
| %52 = load i32, i32* %10, align 4, !dbg !9660 | |
| %53 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9662 | |
| %54 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %53, i32 0, i32 1, !dbg !9663 | |
| %55 = load i32, i32* %54, align 4, !dbg !9663 | |
| %56 = icmp ult i32 %52, %55, !dbg !9664 | |
| br i1 %56, label %57, label %90, !dbg !9665 | |
| 57: ; preds = %51 | |
| %58 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9666 | |
| %59 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %58, i32 0, i32 2, !dbg !9666 | |
| %60 = load float*, float** %59, align 8, !dbg !9666 | |
| %61 = load i32, i32* %8, align 4, !dbg !9666 | |
| %62 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9666 | |
| %63 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %62, i32 0, i32 1, !dbg !9666 | |
| %64 = load i32, i32* %63, align 4, !dbg !9666 | |
| %65 = mul i32 %61, %64, !dbg !9666 | |
| %66 = load i32, i32* %10, align 4, !dbg !9666 | |
| %67 = add i32 %65, %66, !dbg !9666 | |
| %68 = zext i32 %67 to i64, !dbg !9666 | |
| %69 = getelementptr inbounds float, float* %60, i64 %68, !dbg !9666 | |
| %70 = load float, float* %69, align 4, !dbg !9666 | |
| %71 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !9668 | |
| %72 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %71, i32 0, i32 2, !dbg !9668 | |
| %73 = load float*, float** %72, align 8, !dbg !9668 | |
| %74 = load i32, i32* %10, align 4, !dbg !9668 | |
| %75 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !9668 | |
| %76 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %75, i32 0, i32 1, !dbg !9668 | |
| %77 = load i32, i32* %76, align 4, !dbg !9668 | |
| %78 = mul i32 %74, %77, !dbg !9668 | |
| %79 = load i32, i32* %9, align 4, !dbg !9668 | |
| %80 = add i32 %78, %79, !dbg !9668 | |
| %81 = zext i32 %80 to i64, !dbg !9668 | |
| %82 = getelementptr inbounds float, float* %73, i64 %81, !dbg !9668 | |
| %83 = load float, float* %82, align 4, !dbg !9668 | |
| %84 = fmul float %70, %83, !dbg !9669 | |
| %85 = load float, float* %11, align 4, !dbg !9670 | |
| %86 = fadd float %85, %84, !dbg !9670 | |
| store float %86, float* %11, align 4, !dbg !9670 | |
| br label %87, !dbg !9671 | |
| 87: ; preds = %57 | |
| %88 = load i32, i32* %10, align 4, !dbg !9672 | |
| %89 = add i32 %88, 1, !dbg !9672 | |
| store i32 %89, i32* %10, align 4, !dbg !9672 | |
| br label %51, !dbg !9673, !llvm.loop !9674 | |
| 90: ; preds = %51 | |
| %91 = load float, float* %11, align 4, !dbg !9676 | |
| %92 = load %struct.Matrixf_t*, %struct.Matrixf_t** %7, align 8, !dbg !9676 | |
| %93 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %92, i32 0, i32 2, !dbg !9676 | |
| %94 = load float*, float** %93, align 8, !dbg !9676 | |
| %95 = load i32, i32* %8, align 4, !dbg !9676 | |
| %96 = load %struct.Matrixf_t*, %struct.Matrixf_t** %7, align 8, !dbg !9676 | |
| %97 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %96, i32 0, i32 1, !dbg !9676 | |
| %98 = load i32, i32* %97, align 4, !dbg !9676 | |
| %99 = mul i32 %95, %98, !dbg !9676 | |
| %100 = load i32, i32* %9, align 4, !dbg !9676 | |
| %101 = add i32 %99, %100, !dbg !9676 | |
| %102 = zext i32 %101 to i64, !dbg !9676 | |
| %103 = getelementptr inbounds float, float* %94, i64 %102, !dbg !9676 | |
| store float %91, float* %103, align 4, !dbg !9676 | |
| br label %104, !dbg !9677 | |
| 104: ; preds = %90 | |
| %105 = load i32, i32* %9, align 4, !dbg !9678 | |
| %106 = add i32 %105, 1, !dbg !9678 | |
| store i32 %106, i32* %9, align 4, !dbg !9678 | |
| br label %44, !dbg !9679, !llvm.loop !9680 | |
| 107: ; preds = %44 | |
| br label %108, !dbg !9682 | |
| 108: ; preds = %107 | |
| %109 = load i32, i32* %8, align 4, !dbg !9683 | |
| %110 = add i32 %109, 1, !dbg !9683 | |
| store i32 %110, i32* %8, align 4, !dbg !9683 | |
| br label %37, !dbg !9684, !llvm.loop !9685 | |
| 111: ; preds = %37 | |
| store i64 1, i64* %4, align 8, !dbg !9687 | |
| br label %112, !dbg !9687 | |
| 112: ; preds = %111, %35 | |
| %113 = load i64, i64* %4, align 8, !dbg !9688 | |
| ret i64 %113, !dbg !9688 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixMultiplyTransAf(%struct.Matrixf_t* %0, %struct.Matrixf_t* %1, %struct.Matrixf_t* %2) #0 !dbg !9689 { | |
| %4 = alloca i64, align 8 | |
| %5 = alloca %struct.Matrixf_t*, align 8 | |
| %6 = alloca %struct.Matrixf_t*, align 8 | |
| %7 = alloca %struct.Matrixf_t*, align 8 | |
| %8 = alloca i32, align 4 | |
| %9 = alloca i32, align 4 | |
| %10 = alloca i32, align 4 | |
| %11 = alloca i32, align 4 | |
| %12 = alloca i32, align 4 | |
| %13 = alloca float, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %5, metadata !9690, metadata !DIExpression()), !dbg !9691 | |
| store %struct.Matrixf_t* %1, %struct.Matrixf_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %6, metadata !9692, metadata !DIExpression()), !dbg !9693 | |
| store %struct.Matrixf_t* %2, %struct.Matrixf_t** %7, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %7, metadata !9694, metadata !DIExpression()), !dbg !9695 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !9696, metadata !DIExpression()), !dbg !9697 | |
| call void @llvm.dbg.declare(metadata i32* %9, metadata !9698, metadata !DIExpression()), !dbg !9699 | |
| call void @llvm.dbg.declare(metadata i32* %10, metadata !9700, metadata !DIExpression()), !dbg !9701 | |
| call void @llvm.dbg.declare(metadata i32* %11, metadata !9702, metadata !DIExpression()), !dbg !9703 | |
| %14 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9704 | |
| %15 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %14, i32 0, i32 1, !dbg !9705 | |
| %16 = load i32, i32* %15, align 4, !dbg !9705 | |
| store i32 %16, i32* %11, align 4, !dbg !9703 | |
| call void @llvm.dbg.declare(metadata i32* %12, metadata !9706, metadata !DIExpression()), !dbg !9707 | |
| %17 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9708 | |
| %18 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %17, i32 0, i32 0, !dbg !9709 | |
| %19 = load i32, i32* %18, align 8, !dbg !9709 | |
| store i32 %19, i32* %12, align 4, !dbg !9707 | |
| %20 = load i32, i32* %12, align 4, !dbg !9710 | |
| %21 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !9712 | |
| %22 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %21, i32 0, i32 0, !dbg !9713 | |
| %23 = load i32, i32* %22, align 8, !dbg !9713 | |
| %24 = icmp ne i32 %20, %23, !dbg !9714 | |
| br i1 %24, label %39, label %25, !dbg !9715 | |
| 25: ; preds = %3 | |
| %26 = load i32, i32* %11, align 4, !dbg !9716 | |
| %27 = load %struct.Matrixf_t*, %struct.Matrixf_t** %7, align 8, !dbg !9717 | |
| %28 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %27, i32 0, i32 0, !dbg !9718 | |
| %29 = load i32, i32* %28, align 8, !dbg !9718 | |
| %30 = icmp ne i32 %26, %29, !dbg !9719 | |
| br i1 %30, label %39, label %31, !dbg !9720 | |
| 31: ; preds = %25 | |
| %32 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !9721 | |
| %33 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %32, i32 0, i32 1, !dbg !9722 | |
| %34 = load i32, i32* %33, align 4, !dbg !9722 | |
| %35 = load %struct.Matrixf_t*, %struct.Matrixf_t** %7, align 8, !dbg !9723 | |
| %36 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %35, i32 0, i32 1, !dbg !9724 | |
| %37 = load i32, i32* %36, align 4, !dbg !9724 | |
| %38 = icmp ne i32 %34, %37, !dbg !9725 | |
| br i1 %38, label %39, label %40, !dbg !9726 | |
| 39: ; preds = %31, %25, %3 | |
| store i64 0, i64* %4, align 8, !dbg !9727 | |
| br label %112, !dbg !9727 | |
| 40: ; preds = %31 | |
| store i32 0, i32* %8, align 4, !dbg !9728 | |
| br label %41, !dbg !9730 | |
| 41: ; preds = %108, %40 | |
| %42 = load i32, i32* %8, align 4, !dbg !9731 | |
| %43 = load i32, i32* %11, align 4, !dbg !9733 | |
| %44 = icmp ult i32 %42, %43, !dbg !9734 | |
| br i1 %44, label %45, label %111, !dbg !9735 | |
| 45: ; preds = %41 | |
| store i32 0, i32* %9, align 4, !dbg !9736 | |
| br label %46, !dbg !9739 | |
| 46: ; preds = %104, %45 | |
| %47 = load i32, i32* %9, align 4, !dbg !9740 | |
| %48 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !9742 | |
| %49 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %48, i32 0, i32 1, !dbg !9743 | |
| %50 = load i32, i32* %49, align 4, !dbg !9743 | |
| %51 = icmp ult i32 %47, %50, !dbg !9744 | |
| br i1 %51, label %52, label %107, !dbg !9745 | |
| 52: ; preds = %46 | |
| call void @llvm.dbg.declare(metadata float* %13, metadata !9746, metadata !DIExpression()), !dbg !9748 | |
| store float 0.000000e+00, float* %13, align 4, !dbg !9748 | |
| store i32 0, i32* %10, align 4, !dbg !9749 | |
| br label %53, !dbg !9751 | |
| 53: ; preds = %87, %52 | |
| %54 = load i32, i32* %10, align 4, !dbg !9752 | |
| %55 = load i32, i32* %12, align 4, !dbg !9754 | |
| %56 = icmp ult i32 %54, %55, !dbg !9755 | |
| br i1 %56, label %57, label %90, !dbg !9756 | |
| 57: ; preds = %53 | |
| %58 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9757 | |
| %59 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %58, i32 0, i32 2, !dbg !9757 | |
| %60 = load float*, float** %59, align 8, !dbg !9757 | |
| %61 = load i32, i32* %10, align 4, !dbg !9757 | |
| %62 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9757 | |
| %63 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %62, i32 0, i32 1, !dbg !9757 | |
| %64 = load i32, i32* %63, align 4, !dbg !9757 | |
| %65 = mul i32 %61, %64, !dbg !9757 | |
| %66 = load i32, i32* %8, align 4, !dbg !9757 | |
| %67 = add i32 %65, %66, !dbg !9757 | |
| %68 = zext i32 %67 to i64, !dbg !9757 | |
| %69 = getelementptr inbounds float, float* %60, i64 %68, !dbg !9757 | |
| %70 = load float, float* %69, align 4, !dbg !9757 | |
| %71 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !9759 | |
| %72 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %71, i32 0, i32 2, !dbg !9759 | |
| %73 = load float*, float** %72, align 8, !dbg !9759 | |
| %74 = load i32, i32* %10, align 4, !dbg !9759 | |
| %75 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !9759 | |
| %76 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %75, i32 0, i32 1, !dbg !9759 | |
| %77 = load i32, i32* %76, align 4, !dbg !9759 | |
| %78 = mul i32 %74, %77, !dbg !9759 | |
| %79 = load i32, i32* %9, align 4, !dbg !9759 | |
| %80 = add i32 %78, %79, !dbg !9759 | |
| %81 = zext i32 %80 to i64, !dbg !9759 | |
| %82 = getelementptr inbounds float, float* %73, i64 %81, !dbg !9759 | |
| %83 = load float, float* %82, align 4, !dbg !9759 | |
| %84 = fmul float %70, %83, !dbg !9760 | |
| %85 = load float, float* %13, align 4, !dbg !9761 | |
| %86 = fadd float %85, %84, !dbg !9761 | |
| store float %86, float* %13, align 4, !dbg !9761 | |
| br label %87, !dbg !9762 | |
| 87: ; preds = %57 | |
| %88 = load i32, i32* %10, align 4, !dbg !9763 | |
| %89 = add i32 %88, 1, !dbg !9763 | |
| store i32 %89, i32* %10, align 4, !dbg !9763 | |
| br label %53, !dbg !9764, !llvm.loop !9765 | |
| 90: ; preds = %53 | |
| %91 = load float, float* %13, align 4, !dbg !9767 | |
| %92 = load %struct.Matrixf_t*, %struct.Matrixf_t** %7, align 8, !dbg !9767 | |
| %93 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %92, i32 0, i32 2, !dbg !9767 | |
| %94 = load float*, float** %93, align 8, !dbg !9767 | |
| %95 = load i32, i32* %8, align 4, !dbg !9767 | |
| %96 = load %struct.Matrixf_t*, %struct.Matrixf_t** %7, align 8, !dbg !9767 | |
| %97 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %96, i32 0, i32 1, !dbg !9767 | |
| %98 = load i32, i32* %97, align 4, !dbg !9767 | |
| %99 = mul i32 %95, %98, !dbg !9767 | |
| %100 = load i32, i32* %9, align 4, !dbg !9767 | |
| %101 = add i32 %99, %100, !dbg !9767 | |
| %102 = zext i32 %101 to i64, !dbg !9767 | |
| %103 = getelementptr inbounds float, float* %94, i64 %102, !dbg !9767 | |
| store float %91, float* %103, align 4, !dbg !9767 | |
| br label %104, !dbg !9768 | |
| 104: ; preds = %90 | |
| %105 = load i32, i32* %9, align 4, !dbg !9769 | |
| %106 = add i32 %105, 1, !dbg !9769 | |
| store i32 %106, i32* %9, align 4, !dbg !9769 | |
| br label %46, !dbg !9770, !llvm.loop !9771 | |
| 107: ; preds = %46 | |
| br label %108, !dbg !9773 | |
| 108: ; preds = %107 | |
| %109 = load i32, i32* %8, align 4, !dbg !9774 | |
| %110 = add i32 %109, 1, !dbg !9774 | |
| store i32 %110, i32* %8, align 4, !dbg !9774 | |
| br label %41, !dbg !9775, !llvm.loop !9776 | |
| 111: ; preds = %41 | |
| store i64 1, i64* %4, align 8, !dbg !9778 | |
| br label %112, !dbg !9778 | |
| 112: ; preds = %111, %39 | |
| %113 = load i64, i64* %4, align 8, !dbg !9779 | |
| ret i64 %113, !dbg !9779 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixMultiplyTransBf(%struct.Matrixf_t* %0, %struct.Matrixf_t* %1, %struct.Matrixf_t* %2) #0 !dbg !9780 { | |
| %4 = alloca i64, align 8 | |
| %5 = alloca %struct.Matrixf_t*, align 8 | |
| %6 = alloca %struct.Matrixf_t*, align 8 | |
| %7 = alloca %struct.Matrixf_t*, align 8 | |
| %8 = alloca i32, align 4 | |
| %9 = alloca i32, align 4 | |
| %10 = alloca i32, align 4 | |
| %11 = alloca i32, align 4 | |
| %12 = alloca i32, align 4 | |
| %13 = alloca float, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %5, metadata !9781, metadata !DIExpression()), !dbg !9782 | |
| store %struct.Matrixf_t* %1, %struct.Matrixf_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %6, metadata !9783, metadata !DIExpression()), !dbg !9784 | |
| store %struct.Matrixf_t* %2, %struct.Matrixf_t** %7, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %7, metadata !9785, metadata !DIExpression()), !dbg !9786 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !9787, metadata !DIExpression()), !dbg !9788 | |
| call void @llvm.dbg.declare(metadata i32* %9, metadata !9789, metadata !DIExpression()), !dbg !9790 | |
| call void @llvm.dbg.declare(metadata i32* %10, metadata !9791, metadata !DIExpression()), !dbg !9792 | |
| call void @llvm.dbg.declare(metadata i32* %11, metadata !9793, metadata !DIExpression()), !dbg !9794 | |
| %14 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !9795 | |
| %15 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %14, i32 0, i32 1, !dbg !9796 | |
| %16 = load i32, i32* %15, align 4, !dbg !9796 | |
| store i32 %16, i32* %11, align 4, !dbg !9794 | |
| call void @llvm.dbg.declare(metadata i32* %12, metadata !9797, metadata !DIExpression()), !dbg !9798 | |
| %17 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !9799 | |
| %18 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %17, i32 0, i32 0, !dbg !9800 | |
| %19 = load i32, i32* %18, align 8, !dbg !9800 | |
| store i32 %19, i32* %12, align 4, !dbg !9798 | |
| %20 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9801 | |
| %21 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %20, i32 0, i32 1, !dbg !9803 | |
| %22 = load i32, i32* %21, align 4, !dbg !9803 | |
| %23 = load i32, i32* %11, align 4, !dbg !9804 | |
| %24 = icmp ne i32 %22, %23, !dbg !9805 | |
| br i1 %24, label %39, label %25, !dbg !9806 | |
| 25: ; preds = %3 | |
| %26 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9807 | |
| %27 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %26, i32 0, i32 0, !dbg !9808 | |
| %28 = load i32, i32* %27, align 8, !dbg !9808 | |
| %29 = load %struct.Matrixf_t*, %struct.Matrixf_t** %7, align 8, !dbg !9809 | |
| %30 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %29, i32 0, i32 0, !dbg !9810 | |
| %31 = load i32, i32* %30, align 8, !dbg !9810 | |
| %32 = icmp ne i32 %28, %31, !dbg !9811 | |
| br i1 %32, label %39, label %33, !dbg !9812 | |
| 33: ; preds = %25 | |
| %34 = load i32, i32* %12, align 4, !dbg !9813 | |
| %35 = load %struct.Matrixf_t*, %struct.Matrixf_t** %7, align 8, !dbg !9814 | |
| %36 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %35, i32 0, i32 1, !dbg !9815 | |
| %37 = load i32, i32* %36, align 4, !dbg !9815 | |
| %38 = icmp ne i32 %34, %37, !dbg !9816 | |
| br i1 %38, label %39, label %40, !dbg !9817 | |
| 39: ; preds = %33, %25, %3 | |
| store i64 0, i64* %4, align 8, !dbg !9818 | |
| br label %114, !dbg !9818 | |
| 40: ; preds = %33 | |
| store i32 0, i32* %8, align 4, !dbg !9819 | |
| br label %41, !dbg !9821 | |
| 41: ; preds = %110, %40 | |
| %42 = load i32, i32* %8, align 4, !dbg !9822 | |
| %43 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9824 | |
| %44 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %43, i32 0, i32 0, !dbg !9825 | |
| %45 = load i32, i32* %44, align 8, !dbg !9825 | |
| %46 = icmp ult i32 %42, %45, !dbg !9826 | |
| br i1 %46, label %47, label %113, !dbg !9827 | |
| 47: ; preds = %41 | |
| store i32 0, i32* %9, align 4, !dbg !9828 | |
| br label %48, !dbg !9831 | |
| 48: ; preds = %106, %47 | |
| %49 = load i32, i32* %9, align 4, !dbg !9832 | |
| %50 = load i32, i32* %12, align 4, !dbg !9834 | |
| %51 = icmp ult i32 %49, %50, !dbg !9835 | |
| br i1 %51, label %52, label %109, !dbg !9836 | |
| 52: ; preds = %48 | |
| call void @llvm.dbg.declare(metadata float* %13, metadata !9837, metadata !DIExpression()), !dbg !9839 | |
| store float 0.000000e+00, float* %13, align 4, !dbg !9839 | |
| store i32 0, i32* %10, align 4, !dbg !9840 | |
| br label %53, !dbg !9842 | |
| 53: ; preds = %89, %52 | |
| %54 = load i32, i32* %10, align 4, !dbg !9843 | |
| %55 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9845 | |
| %56 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %55, i32 0, i32 1, !dbg !9846 | |
| %57 = load i32, i32* %56, align 4, !dbg !9846 | |
| %58 = icmp ult i32 %54, %57, !dbg !9847 | |
| br i1 %58, label %59, label %92, !dbg !9848 | |
| 59: ; preds = %53 | |
| %60 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9849 | |
| %61 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %60, i32 0, i32 2, !dbg !9849 | |
| %62 = load float*, float** %61, align 8, !dbg !9849 | |
| %63 = load i32, i32* %8, align 4, !dbg !9849 | |
| %64 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9849 | |
| %65 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %64, i32 0, i32 1, !dbg !9849 | |
| %66 = load i32, i32* %65, align 4, !dbg !9849 | |
| %67 = mul i32 %63, %66, !dbg !9849 | |
| %68 = load i32, i32* %10, align 4, !dbg !9849 | |
| %69 = add i32 %67, %68, !dbg !9849 | |
| %70 = zext i32 %69 to i64, !dbg !9849 | |
| %71 = getelementptr inbounds float, float* %62, i64 %70, !dbg !9849 | |
| %72 = load float, float* %71, align 4, !dbg !9849 | |
| %73 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !9851 | |
| %74 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %73, i32 0, i32 2, !dbg !9851 | |
| %75 = load float*, float** %74, align 8, !dbg !9851 | |
| %76 = load i32, i32* %9, align 4, !dbg !9851 | |
| %77 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !9851 | |
| %78 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %77, i32 0, i32 1, !dbg !9851 | |
| %79 = load i32, i32* %78, align 4, !dbg !9851 | |
| %80 = mul i32 %76, %79, !dbg !9851 | |
| %81 = load i32, i32* %10, align 4, !dbg !9851 | |
| %82 = add i32 %80, %81, !dbg !9851 | |
| %83 = zext i32 %82 to i64, !dbg !9851 | |
| %84 = getelementptr inbounds float, float* %75, i64 %83, !dbg !9851 | |
| %85 = load float, float* %84, align 4, !dbg !9851 | |
| %86 = fmul float %72, %85, !dbg !9852 | |
| %87 = load float, float* %13, align 4, !dbg !9853 | |
| %88 = fadd float %87, %86, !dbg !9853 | |
| store float %88, float* %13, align 4, !dbg !9853 | |
| br label %89, !dbg !9854 | |
| 89: ; preds = %59 | |
| %90 = load i32, i32* %10, align 4, !dbg !9855 | |
| %91 = add i32 %90, 1, !dbg !9855 | |
| store i32 %91, i32* %10, align 4, !dbg !9855 | |
| br label %53, !dbg !9856, !llvm.loop !9857 | |
| 92: ; preds = %53 | |
| %93 = load float, float* %13, align 4, !dbg !9859 | |
| %94 = load %struct.Matrixf_t*, %struct.Matrixf_t** %7, align 8, !dbg !9859 | |
| %95 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %94, i32 0, i32 2, !dbg !9859 | |
| %96 = load float*, float** %95, align 8, !dbg !9859 | |
| %97 = load i32, i32* %8, align 4, !dbg !9859 | |
| %98 = load %struct.Matrixf_t*, %struct.Matrixf_t** %7, align 8, !dbg !9859 | |
| %99 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %98, i32 0, i32 1, !dbg !9859 | |
| %100 = load i32, i32* %99, align 4, !dbg !9859 | |
| %101 = mul i32 %97, %100, !dbg !9859 | |
| %102 = load i32, i32* %9, align 4, !dbg !9859 | |
| %103 = add i32 %101, %102, !dbg !9859 | |
| %104 = zext i32 %103 to i64, !dbg !9859 | |
| %105 = getelementptr inbounds float, float* %96, i64 %104, !dbg !9859 | |
| store float %93, float* %105, align 4, !dbg !9859 | |
| br label %106, !dbg !9860 | |
| 106: ; preds = %92 | |
| %107 = load i32, i32* %9, align 4, !dbg !9861 | |
| %108 = add i32 %107, 1, !dbg !9861 | |
| store i32 %108, i32* %9, align 4, !dbg !9861 | |
| br label %48, !dbg !9862, !llvm.loop !9863 | |
| 109: ; preds = %48 | |
| br label %110, !dbg !9865 | |
| 110: ; preds = %109 | |
| %111 = load i32, i32* %8, align 4, !dbg !9866 | |
| %112 = add i32 %111, 1, !dbg !9866 | |
| store i32 %112, i32* %8, align 4, !dbg !9866 | |
| br label %41, !dbg !9867, !llvm.loop !9868 | |
| 113: ; preds = %41 | |
| store i64 1, i64* %4, align 8, !dbg !9870 | |
| br label %114, !dbg !9870 | |
| 114: ; preds = %113, %39 | |
| %115 = load i64, i64* %4, align 8, !dbg !9871 | |
| ret i64 %115, !dbg !9871 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixVectorMultiplyf(%struct.Matrixf_t* %0, %struct.Vectorf_t* %1, %struct.Vectorf_t* %2) #0 !dbg !9872 { | |
| %4 = alloca i64, align 8 | |
| %5 = alloca %struct.Matrixf_t*, align 8 | |
| %6 = alloca %struct.Vectorf_t*, align 8 | |
| %7 = alloca %struct.Vectorf_t*, align 8 | |
| %8 = alloca i32, align 4 | |
| %9 = alloca i32, align 4 | |
| %10 = alloca float, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %5, metadata !9875, metadata !DIExpression()), !dbg !9876 | |
| store %struct.Vectorf_t* %1, %struct.Vectorf_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %6, metadata !9877, metadata !DIExpression()), !dbg !9878 | |
| store %struct.Vectorf_t* %2, %struct.Vectorf_t** %7, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %7, metadata !9879, metadata !DIExpression()), !dbg !9880 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !9881, metadata !DIExpression()), !dbg !9882 | |
| call void @llvm.dbg.declare(metadata i32* %9, metadata !9883, metadata !DIExpression()), !dbg !9884 | |
| %11 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9885 | |
| %12 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %11, i32 0, i32 1, !dbg !9887 | |
| %13 = load i32, i32* %12, align 4, !dbg !9887 | |
| %14 = load %struct.Vectorf_t*, %struct.Vectorf_t** %6, align 8, !dbg !9888 | |
| %15 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %14, i32 0, i32 0, !dbg !9889 | |
| %16 = load i32, i32* %15, align 8, !dbg !9889 | |
| %17 = icmp ugt i32 %13, %16, !dbg !9890 | |
| br i1 %17, label %26, label %18, !dbg !9891 | |
| 18: ; preds = %3 | |
| %19 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9892 | |
| %20 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %19, i32 0, i32 0, !dbg !9893 | |
| %21 = load i32, i32* %20, align 8, !dbg !9893 | |
| %22 = load %struct.Vectorf_t*, %struct.Vectorf_t** %7, align 8, !dbg !9894 | |
| %23 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %22, i32 0, i32 0, !dbg !9895 | |
| %24 = load i32, i32* %23, align 8, !dbg !9895 | |
| %25 = icmp ugt i32 %21, %24, !dbg !9896 | |
| br i1 %25, label %26, label %27, !dbg !9897 | |
| 26: ; preds = %18, %3 | |
| store i64 0, i64* %4, align 8, !dbg !9898 | |
| br label %80, !dbg !9898 | |
| 27: ; preds = %18 | |
| store i32 0, i32* %8, align 4, !dbg !9899 | |
| br label %28, !dbg !9901 | |
| 28: ; preds = %76, %27 | |
| %29 = load i32, i32* %8, align 4, !dbg !9902 | |
| %30 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9904 | |
| %31 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %30, i32 0, i32 0, !dbg !9905 | |
| %32 = load i32, i32* %31, align 8, !dbg !9905 | |
| %33 = icmp ult i32 %29, %32, !dbg !9906 | |
| br i1 %33, label %34, label %79, !dbg !9907 | |
| 34: ; preds = %28 | |
| call void @llvm.dbg.declare(metadata float* %10, metadata !9908, metadata !DIExpression()), !dbg !9910 | |
| store float 0.000000e+00, float* %10, align 4, !dbg !9910 | |
| store i32 0, i32* %9, align 4, !dbg !9911 | |
| br label %35, !dbg !9913 | |
| 35: ; preds = %65, %34 | |
| %36 = load i32, i32* %9, align 4, !dbg !9914 | |
| %37 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9916 | |
| %38 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %37, i32 0, i32 1, !dbg !9917 | |
| %39 = load i32, i32* %38, align 4, !dbg !9917 | |
| %40 = icmp ult i32 %36, %39, !dbg !9918 | |
| br i1 %40, label %41, label %68, !dbg !9919 | |
| 41: ; preds = %35 | |
| %42 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9920 | |
| %43 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %42, i32 0, i32 2, !dbg !9920 | |
| %44 = load float*, float** %43, align 8, !dbg !9920 | |
| %45 = load i32, i32* %8, align 4, !dbg !9920 | |
| %46 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9920 | |
| %47 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %46, i32 0, i32 1, !dbg !9920 | |
| %48 = load i32, i32* %47, align 4, !dbg !9920 | |
| %49 = mul i32 %45, %48, !dbg !9920 | |
| %50 = load i32, i32* %9, align 4, !dbg !9920 | |
| %51 = add i32 %49, %50, !dbg !9920 | |
| %52 = zext i32 %51 to i64, !dbg !9920 | |
| %53 = getelementptr inbounds float, float* %44, i64 %52, !dbg !9920 | |
| %54 = load float, float* %53, align 4, !dbg !9920 | |
| %55 = load %struct.Vectorf_t*, %struct.Vectorf_t** %6, align 8, !dbg !9922 | |
| %56 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %55, i32 0, i32 1, !dbg !9923 | |
| %57 = load float*, float** %56, align 8, !dbg !9923 | |
| %58 = load i32, i32* %9, align 4, !dbg !9924 | |
| %59 = zext i32 %58 to i64, !dbg !9922 | |
| %60 = getelementptr inbounds float, float* %57, i64 %59, !dbg !9922 | |
| %61 = load float, float* %60, align 4, !dbg !9922 | |
| %62 = fmul float %54, %61, !dbg !9925 | |
| %63 = load float, float* %10, align 4, !dbg !9926 | |
| %64 = fadd float %63, %62, !dbg !9926 | |
| store float %64, float* %10, align 4, !dbg !9926 | |
| br label %65, !dbg !9927 | |
| 65: ; preds = %41 | |
| %66 = load i32, i32* %9, align 4, !dbg !9928 | |
| %67 = add i32 %66, 1, !dbg !9928 | |
| store i32 %67, i32* %9, align 4, !dbg !9928 | |
| br label %35, !dbg !9929, !llvm.loop !9930 | |
| 68: ; preds = %35 | |
| %69 = load float, float* %10, align 4, !dbg !9932 | |
| %70 = load %struct.Vectorf_t*, %struct.Vectorf_t** %7, align 8, !dbg !9933 | |
| %71 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %70, i32 0, i32 1, !dbg !9934 | |
| %72 = load float*, float** %71, align 8, !dbg !9934 | |
| %73 = load i32, i32* %8, align 4, !dbg !9935 | |
| %74 = zext i32 %73 to i64, !dbg !9933 | |
| %75 = getelementptr inbounds float, float* %72, i64 %74, !dbg !9933 | |
| store float %69, float* %75, align 4, !dbg !9936 | |
| br label %76, !dbg !9937 | |
| 76: ; preds = %68 | |
| %77 = load i32, i32* %8, align 4, !dbg !9938 | |
| %78 = add i32 %77, 1, !dbg !9938 | |
| store i32 %78, i32* %8, align 4, !dbg !9938 | |
| br label %28, !dbg !9939, !llvm.loop !9940 | |
| 79: ; preds = %28 | |
| store i64 1, i64* %4, align 8, !dbg !9942 | |
| br label %80, !dbg !9942 | |
| 80: ; preds = %79, %26 | |
| %81 = load i64, i64* %4, align 8, !dbg !9943 | |
| ret i64 %81, !dbg !9943 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixVectorMultiplyTransAf(%struct.Matrixf_t* %0, %struct.Vectorf_t* %1, %struct.Vectorf_t* %2) #0 !dbg !9944 { | |
| %4 = alloca i64, align 8 | |
| %5 = alloca %struct.Matrixf_t*, align 8 | |
| %6 = alloca %struct.Vectorf_t*, align 8 | |
| %7 = alloca %struct.Vectorf_t*, align 8 | |
| %8 = alloca i32, align 4 | |
| %9 = alloca i32, align 4 | |
| %10 = alloca i32, align 4 | |
| %11 = alloca i32, align 4 | |
| %12 = alloca float, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %5, metadata !9945, metadata !DIExpression()), !dbg !9946 | |
| store %struct.Vectorf_t* %1, %struct.Vectorf_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %6, metadata !9947, metadata !DIExpression()), !dbg !9948 | |
| store %struct.Vectorf_t* %2, %struct.Vectorf_t** %7, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Vectorf_t** %7, metadata !9949, metadata !DIExpression()), !dbg !9950 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !9951, metadata !DIExpression()), !dbg !9952 | |
| call void @llvm.dbg.declare(metadata i32* %9, metadata !9953, metadata !DIExpression()), !dbg !9954 | |
| call void @llvm.dbg.declare(metadata i32* %10, metadata !9955, metadata !DIExpression()), !dbg !9956 | |
| %13 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9957 | |
| %14 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %13, i32 0, i32 1, !dbg !9958 | |
| %15 = load i32, i32* %14, align 4, !dbg !9958 | |
| store i32 %15, i32* %10, align 4, !dbg !9956 | |
| call void @llvm.dbg.declare(metadata i32* %11, metadata !9959, metadata !DIExpression()), !dbg !9960 | |
| %16 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9961 | |
| %17 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %16, i32 0, i32 0, !dbg !9962 | |
| %18 = load i32, i32* %17, align 8, !dbg !9962 | |
| store i32 %18, i32* %11, align 4, !dbg !9960 | |
| %19 = load i32, i32* %11, align 4, !dbg !9963 | |
| %20 = load %struct.Vectorf_t*, %struct.Vectorf_t** %6, align 8, !dbg !9965 | |
| %21 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %20, i32 0, i32 0, !dbg !9966 | |
| %22 = load i32, i32* %21, align 8, !dbg !9966 | |
| %23 = icmp ugt i32 %19, %22, !dbg !9967 | |
| br i1 %23, label %30, label %24, !dbg !9968 | |
| 24: ; preds = %3 | |
| %25 = load i32, i32* %10, align 4, !dbg !9969 | |
| %26 = load %struct.Vectorf_t*, %struct.Vectorf_t** %7, align 8, !dbg !9970 | |
| %27 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %26, i32 0, i32 0, !dbg !9971 | |
| %28 = load i32, i32* %27, align 8, !dbg !9971 | |
| %29 = icmp ugt i32 %25, %28, !dbg !9972 | |
| br i1 %29, label %30, label %31, !dbg !9973 | |
| 30: ; preds = %24, %3 | |
| store i64 0, i64* %4, align 8, !dbg !9974 | |
| br label %80, !dbg !9974 | |
| 31: ; preds = %24 | |
| store i32 0, i32* %8, align 4, !dbg !9975 | |
| br label %32, !dbg !9977 | |
| 32: ; preds = %76, %31 | |
| %33 = load i32, i32* %8, align 4, !dbg !9978 | |
| %34 = load i32, i32* %10, align 4, !dbg !9980 | |
| %35 = icmp ult i32 %33, %34, !dbg !9981 | |
| br i1 %35, label %36, label %79, !dbg !9982 | |
| 36: ; preds = %32 | |
| call void @llvm.dbg.declare(metadata float* %12, metadata !9983, metadata !DIExpression()), !dbg !9985 | |
| store float 0.000000e+00, float* %12, align 4, !dbg !9985 | |
| store i32 0, i32* %9, align 4, !dbg !9986 | |
| br label %37, !dbg !9988 | |
| 37: ; preds = %65, %36 | |
| %38 = load i32, i32* %9, align 4, !dbg !9989 | |
| %39 = load i32, i32* %11, align 4, !dbg !9991 | |
| %40 = icmp ult i32 %38, %39, !dbg !9992 | |
| br i1 %40, label %41, label %68, !dbg !9993 | |
| 41: ; preds = %37 | |
| %42 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9994 | |
| %43 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %42, i32 0, i32 2, !dbg !9994 | |
| %44 = load float*, float** %43, align 8, !dbg !9994 | |
| %45 = load i32, i32* %9, align 4, !dbg !9994 | |
| %46 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !9994 | |
| %47 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %46, i32 0, i32 1, !dbg !9994 | |
| %48 = load i32, i32* %47, align 4, !dbg !9994 | |
| %49 = mul i32 %45, %48, !dbg !9994 | |
| %50 = load i32, i32* %8, align 4, !dbg !9994 | |
| %51 = add i32 %49, %50, !dbg !9994 | |
| %52 = zext i32 %51 to i64, !dbg !9994 | |
| %53 = getelementptr inbounds float, float* %44, i64 %52, !dbg !9994 | |
| %54 = load float, float* %53, align 4, !dbg !9994 | |
| %55 = load %struct.Vectorf_t*, %struct.Vectorf_t** %6, align 8, !dbg !9996 | |
| %56 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %55, i32 0, i32 1, !dbg !9997 | |
| %57 = load float*, float** %56, align 8, !dbg !9997 | |
| %58 = load i32, i32* %9, align 4, !dbg !9998 | |
| %59 = zext i32 %58 to i64, !dbg !9996 | |
| %60 = getelementptr inbounds float, float* %57, i64 %59, !dbg !9996 | |
| %61 = load float, float* %60, align 4, !dbg !9996 | |
| %62 = fmul float %54, %61, !dbg !9999 | |
| %63 = load float, float* %12, align 4, !dbg !10000 | |
| %64 = fadd float %63, %62, !dbg !10000 | |
| store float %64, float* %12, align 4, !dbg !10000 | |
| br label %65, !dbg !10001 | |
| 65: ; preds = %41 | |
| %66 = load i32, i32* %9, align 4, !dbg !10002 | |
| %67 = add i32 %66, 1, !dbg !10002 | |
| store i32 %67, i32* %9, align 4, !dbg !10002 | |
| br label %37, !dbg !10003, !llvm.loop !10004 | |
| 68: ; preds = %37 | |
| %69 = load float, float* %12, align 4, !dbg !10006 | |
| %70 = load %struct.Vectorf_t*, %struct.Vectorf_t** %7, align 8, !dbg !10007 | |
| %71 = getelementptr inbounds %struct.Vectorf_t, %struct.Vectorf_t* %70, i32 0, i32 1, !dbg !10008 | |
| %72 = load float*, float** %71, align 8, !dbg !10008 | |
| %73 = load i32, i32* %8, align 4, !dbg !10009 | |
| %74 = zext i32 %73 to i64, !dbg !10007 | |
| %75 = getelementptr inbounds float, float* %72, i64 %74, !dbg !10007 | |
| store float %69, float* %75, align 4, !dbg !10010 | |
| br label %76, !dbg !10011 | |
| 76: ; preds = %68 | |
| %77 = load i32, i32* %8, align 4, !dbg !10012 | |
| %78 = add i32 %77, 1, !dbg !10012 | |
| store i32 %78, i32* %8, align 4, !dbg !10012 | |
| br label %32, !dbg !10013, !llvm.loop !10014 | |
| 79: ; preds = %32 | |
| store i64 1, i64* %4, align 8, !dbg !10016 | |
| br label %80, !dbg !10016 | |
| 80: ; preds = %79, %30 | |
| %81 = load i64, i64* %4, align 8, !dbg !10017 | |
| ret i64 %81, !dbg !10017 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixAddf(%struct.Matrixf_t* %0, %struct.Matrixf_t* %1, %struct.Matrixf_t* %2) #0 !dbg !10018 { | |
| %4 = alloca i64, align 8 | |
| %5 = alloca %struct.Matrixf_t*, align 8 | |
| %6 = alloca %struct.Matrixf_t*, align 8 | |
| %7 = alloca %struct.Matrixf_t*, align 8 | |
| %8 = alloca i32, align 4 | |
| %9 = alloca i32, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %5, metadata !10019, metadata !DIExpression()), !dbg !10020 | |
| store %struct.Matrixf_t* %1, %struct.Matrixf_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %6, metadata !10021, metadata !DIExpression()), !dbg !10022 | |
| store %struct.Matrixf_t* %2, %struct.Matrixf_t** %7, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %7, metadata !10023, metadata !DIExpression()), !dbg !10024 | |
| %10 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10025 | |
| %11 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %10, i32 0, i32 0, !dbg !10027 | |
| %12 = load i32, i32* %11, align 8, !dbg !10027 | |
| %13 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !10028 | |
| %14 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %13, i32 0, i32 0, !dbg !10029 | |
| %15 = load i32, i32* %14, align 8, !dbg !10029 | |
| %16 = icmp eq i32 %12, %15, !dbg !10030 | |
| br i1 %16, label %17, label %79, !dbg !10031 | |
| 17: ; preds = %3 | |
| %18 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !10032 | |
| %19 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %18, i32 0, i32 0, !dbg !10033 | |
| %20 = load i32, i32* %19, align 8, !dbg !10033 | |
| %21 = load %struct.Matrixf_t*, %struct.Matrixf_t** %7, align 8, !dbg !10034 | |
| %22 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %21, i32 0, i32 0, !dbg !10035 | |
| %23 = load i32, i32* %22, align 8, !dbg !10035 | |
| %24 = icmp eq i32 %20, %23, !dbg !10036 | |
| br i1 %24, label %25, label %79, !dbg !10037 | |
| 25: ; preds = %17 | |
| %26 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10038 | |
| %27 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %26, i32 0, i32 1, !dbg !10039 | |
| %28 = load i32, i32* %27, align 4, !dbg !10039 | |
| %29 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !10040 | |
| %30 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %29, i32 0, i32 1, !dbg !10041 | |
| %31 = load i32, i32* %30, align 4, !dbg !10041 | |
| %32 = icmp eq i32 %28, %31, !dbg !10042 | |
| br i1 %32, label %33, label %79, !dbg !10043 | |
| 33: ; preds = %25 | |
| %34 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !10044 | |
| %35 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %34, i32 0, i32 1, !dbg !10045 | |
| %36 = load i32, i32* %35, align 4, !dbg !10045 | |
| %37 = load %struct.Matrixf_t*, %struct.Matrixf_t** %7, align 8, !dbg !10046 | |
| %38 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %37, i32 0, i32 1, !dbg !10047 | |
| %39 = load i32, i32* %38, align 4, !dbg !10047 | |
| %40 = icmp eq i32 %36, %39, !dbg !10048 | |
| br i1 %40, label %41, label %79, !dbg !10049 | |
| 41: ; preds = %33 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !10050, metadata !DIExpression()), !dbg !10052 | |
| %42 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10053 | |
| %43 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %42, i32 0, i32 0, !dbg !10054 | |
| %44 = load i32, i32* %43, align 8, !dbg !10054 | |
| %45 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !10055 | |
| %46 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %45, i32 0, i32 1, !dbg !10056 | |
| %47 = load i32, i32* %46, align 4, !dbg !10056 | |
| %48 = mul i32 %44, %47, !dbg !10057 | |
| store i32 %48, i32* %8, align 4, !dbg !10052 | |
| call void @llvm.dbg.declare(metadata i32* %9, metadata !10058, metadata !DIExpression()), !dbg !10059 | |
| store i32 0, i32* %9, align 4, !dbg !10060 | |
| br label %49, !dbg !10062 | |
| 49: ; preds = %75, %41 | |
| %50 = load i32, i32* %9, align 4, !dbg !10063 | |
| %51 = load i32, i32* %8, align 4, !dbg !10065 | |
| %52 = icmp ult i32 %50, %51, !dbg !10066 | |
| br i1 %52, label %53, label %78, !dbg !10067 | |
| 53: ; preds = %49 | |
| %54 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10068 | |
| %55 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %54, i32 0, i32 2, !dbg !10069 | |
| %56 = load float*, float** %55, align 8, !dbg !10069 | |
| %57 = load i32, i32* %9, align 4, !dbg !10070 | |
| %58 = zext i32 %57 to i64, !dbg !10068 | |
| %59 = getelementptr inbounds float, float* %56, i64 %58, !dbg !10068 | |
| %60 = load float, float* %59, align 4, !dbg !10068 | |
| %61 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !10071 | |
| %62 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %61, i32 0, i32 2, !dbg !10072 | |
| %63 = load float*, float** %62, align 8, !dbg !10072 | |
| %64 = load i32, i32* %9, align 4, !dbg !10073 | |
| %65 = zext i32 %64 to i64, !dbg !10071 | |
| %66 = getelementptr inbounds float, float* %63, i64 %65, !dbg !10071 | |
| %67 = load float, float* %66, align 4, !dbg !10071 | |
| %68 = fadd float %60, %67, !dbg !10074 | |
| %69 = load %struct.Matrixf_t*, %struct.Matrixf_t** %7, align 8, !dbg !10075 | |
| %70 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %69, i32 0, i32 2, !dbg !10076 | |
| %71 = load float*, float** %70, align 8, !dbg !10076 | |
| %72 = load i32, i32* %9, align 4, !dbg !10077 | |
| %73 = zext i32 %72 to i64, !dbg !10075 | |
| %74 = getelementptr inbounds float, float* %71, i64 %73, !dbg !10075 | |
| store float %68, float* %74, align 4, !dbg !10078 | |
| br label %75, !dbg !10075 | |
| 75: ; preds = %53 | |
| %76 = load i32, i32* %9, align 4, !dbg !10079 | |
| %77 = add i32 %76, 1, !dbg !10079 | |
| store i32 %77, i32* %9, align 4, !dbg !10079 | |
| br label %49, !dbg !10080, !llvm.loop !10081 | |
| 78: ; preds = %49 | |
| store i64 1, i64* %4, align 8, !dbg !10083 | |
| br label %80, !dbg !10083 | |
| 79: ; preds = %33, %25, %17, %3 | |
| store i64 0, i64* %4, align 8, !dbg !10084 | |
| br label %80, !dbg !10084 | |
| 80: ; preds = %79, %78 | |
| %81 = load i64, i64* %4, align 8, !dbg !10085 | |
| ret i64 %81, !dbg !10085 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixAddEqualsf(%struct.Matrixf_t* %0, %struct.Matrixf_t* %1) #0 !dbg !10086 { | |
| %3 = alloca i64, align 8 | |
| %4 = alloca %struct.Matrixf_t*, align 8 | |
| %5 = alloca %struct.Matrixf_t*, align 8 | |
| %6 = alloca i32, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %4, metadata !10089, metadata !DIExpression()), !dbg !10090 | |
| store %struct.Matrixf_t* %1, %struct.Matrixf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %5, metadata !10091, metadata !DIExpression()), !dbg !10092 | |
| %7 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10093 | |
| %8 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %7, i32 0, i32 0, !dbg !10095 | |
| %9 = load i32, i32* %8, align 8, !dbg !10095 | |
| %10 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10096 | |
| %11 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %10, i32 0, i32 0, !dbg !10097 | |
| %12 = load i32, i32* %11, align 8, !dbg !10097 | |
| %13 = icmp eq i32 %9, %12, !dbg !10098 | |
| br i1 %13, label %14, label %53, !dbg !10099 | |
| 14: ; preds = %2 | |
| %15 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10100 | |
| %16 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %15, i32 0, i32 1, !dbg !10101 | |
| %17 = load i32, i32* %16, align 4, !dbg !10101 | |
| %18 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10102 | |
| %19 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %18, i32 0, i32 1, !dbg !10103 | |
| %20 = load i32, i32* %19, align 4, !dbg !10103 | |
| %21 = icmp eq i32 %17, %20, !dbg !10104 | |
| br i1 %21, label %22, label %53, !dbg !10105 | |
| 22: ; preds = %14 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !10106, metadata !DIExpression()), !dbg !10108 | |
| store i32 0, i32* %6, align 4, !dbg !10109 | |
| br label %23, !dbg !10111 | |
| 23: ; preds = %49, %22 | |
| %24 = load i32, i32* %6, align 4, !dbg !10112 | |
| %25 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10114 | |
| %26 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %25, i32 0, i32 0, !dbg !10115 | |
| %27 = load i32, i32* %26, align 8, !dbg !10115 | |
| %28 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10116 | |
| %29 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %28, i32 0, i32 1, !dbg !10117 | |
| %30 = load i32, i32* %29, align 4, !dbg !10117 | |
| %31 = mul i32 %27, %30, !dbg !10118 | |
| %32 = icmp ult i32 %24, %31, !dbg !10119 | |
| br i1 %32, label %33, label %52, !dbg !10120 | |
| 33: ; preds = %23 | |
| %34 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10121 | |
| %35 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %34, i32 0, i32 2, !dbg !10122 | |
| %36 = load float*, float** %35, align 8, !dbg !10122 | |
| %37 = load i32, i32* %6, align 4, !dbg !10123 | |
| %38 = zext i32 %37 to i64, !dbg !10121 | |
| %39 = getelementptr inbounds float, float* %36, i64 %38, !dbg !10121 | |
| %40 = load float, float* %39, align 4, !dbg !10121 | |
| %41 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10124 | |
| %42 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %41, i32 0, i32 2, !dbg !10125 | |
| %43 = load float*, float** %42, align 8, !dbg !10125 | |
| %44 = load i32, i32* %6, align 4, !dbg !10126 | |
| %45 = zext i32 %44 to i64, !dbg !10124 | |
| %46 = getelementptr inbounds float, float* %43, i64 %45, !dbg !10124 | |
| %47 = load float, float* %46, align 4, !dbg !10127 | |
| %48 = fadd float %47, %40, !dbg !10127 | |
| store float %48, float* %46, align 4, !dbg !10127 | |
| br label %49, !dbg !10124 | |
| 49: ; preds = %33 | |
| %50 = load i32, i32* %6, align 4, !dbg !10128 | |
| %51 = add i32 %50, 1, !dbg !10128 | |
| store i32 %51, i32* %6, align 4, !dbg !10128 | |
| br label %23, !dbg !10129, !llvm.loop !10130 | |
| 52: ; preds = %23 | |
| store i64 1, i64* %3, align 8, !dbg !10132 | |
| br label %54, !dbg !10132 | |
| 53: ; preds = %14, %2 | |
| store i64 0, i64* %3, align 8, !dbg !10133 | |
| br label %54, !dbg !10133 | |
| 54: ; preds = %53, %52 | |
| %55 = load i64, i64* %3, align 8, !dbg !10134 | |
| ret i64 %55, !dbg !10134 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @matrixScalef(%struct.Matrixf_t* %0, float %1) #0 !dbg !10135 { | |
| %3 = alloca %struct.Matrixf_t*, align 8 | |
| %4 = alloca float, align 4 | |
| %5 = alloca i32, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %3, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %3, metadata !10138, metadata !DIExpression()), !dbg !10139 | |
| store float %1, float* %4, align 4 | |
| call void @llvm.dbg.declare(metadata float* %4, metadata !10140, metadata !DIExpression()), !dbg !10141 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !10142, metadata !DIExpression()), !dbg !10143 | |
| store i32 0, i32* %5, align 4, !dbg !10144 | |
| br label %6, !dbg !10146 | |
| 6: ; preds = %26, %2 | |
| %7 = load i32, i32* %5, align 4, !dbg !10147 | |
| %8 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !10149 | |
| %9 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %8, i32 0, i32 0, !dbg !10150 | |
| %10 = load i32, i32* %9, align 8, !dbg !10150 | |
| %11 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !10151 | |
| %12 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %11, i32 0, i32 1, !dbg !10152 | |
| %13 = load i32, i32* %12, align 4, !dbg !10152 | |
| %14 = mul i32 %10, %13, !dbg !10153 | |
| %15 = icmp ult i32 %7, %14, !dbg !10154 | |
| br i1 %15, label %16, label %29, !dbg !10155 | |
| 16: ; preds = %6 | |
| %17 = load float, float* %4, align 4, !dbg !10156 | |
| %18 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !10157 | |
| %19 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %18, i32 0, i32 2, !dbg !10158 | |
| %20 = load float*, float** %19, align 8, !dbg !10158 | |
| %21 = load i32, i32* %5, align 4, !dbg !10159 | |
| %22 = zext i32 %21 to i64, !dbg !10157 | |
| %23 = getelementptr inbounds float, float* %20, i64 %22, !dbg !10157 | |
| %24 = load float, float* %23, align 4, !dbg !10160 | |
| %25 = fmul float %24, %17, !dbg !10160 | |
| store float %25, float* %23, align 4, !dbg !10160 | |
| br label %26, !dbg !10157 | |
| 26: ; preds = %16 | |
| %27 = load i32, i32* %5, align 4, !dbg !10161 | |
| %28 = add i32 %27, 1, !dbg !10161 | |
| store i32 %28, i32* %5, align 4, !dbg !10161 | |
| br label %6, !dbg !10162, !llvm.loop !10163 | |
| 29: ; preds = %6 | |
| ret void, !dbg !10165 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixAveragef(%struct.Matrixf_t* %0, %struct.Matrixf_t* %1, %struct.Matrixf_t* %2) #0 !dbg !10166 { | |
| %4 = alloca i64, align 8 | |
| %5 = alloca %struct.Matrixf_t*, align 8 | |
| %6 = alloca %struct.Matrixf_t*, align 8 | |
| %7 = alloca %struct.Matrixf_t*, align 8 | |
| %8 = alloca i32, align 4 | |
| %9 = alloca i32, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %5, metadata !10167, metadata !DIExpression()), !dbg !10168 | |
| store %struct.Matrixf_t* %1, %struct.Matrixf_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %6, metadata !10169, metadata !DIExpression()), !dbg !10170 | |
| store %struct.Matrixf_t* %2, %struct.Matrixf_t** %7, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %7, metadata !10171, metadata !DIExpression()), !dbg !10172 | |
| %10 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10173 | |
| %11 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %10, i32 0, i32 0, !dbg !10175 | |
| %12 = load i32, i32* %11, align 8, !dbg !10175 | |
| %13 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !10176 | |
| %14 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %13, i32 0, i32 0, !dbg !10177 | |
| %15 = load i32, i32* %14, align 8, !dbg !10177 | |
| %16 = icmp eq i32 %12, %15, !dbg !10178 | |
| br i1 %16, label %17, label %80, !dbg !10179 | |
| 17: ; preds = %3 | |
| %18 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !10180 | |
| %19 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %18, i32 0, i32 0, !dbg !10181 | |
| %20 = load i32, i32* %19, align 8, !dbg !10181 | |
| %21 = load %struct.Matrixf_t*, %struct.Matrixf_t** %7, align 8, !dbg !10182 | |
| %22 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %21, i32 0, i32 0, !dbg !10183 | |
| %23 = load i32, i32* %22, align 8, !dbg !10183 | |
| %24 = icmp eq i32 %20, %23, !dbg !10184 | |
| br i1 %24, label %25, label %80, !dbg !10185 | |
| 25: ; preds = %17 | |
| %26 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10186 | |
| %27 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %26, i32 0, i32 1, !dbg !10187 | |
| %28 = load i32, i32* %27, align 4, !dbg !10187 | |
| %29 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !10188 | |
| %30 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %29, i32 0, i32 1, !dbg !10189 | |
| %31 = load i32, i32* %30, align 4, !dbg !10189 | |
| %32 = icmp eq i32 %28, %31, !dbg !10190 | |
| br i1 %32, label %33, label %80, !dbg !10191 | |
| 33: ; preds = %25 | |
| %34 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !10192 | |
| %35 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %34, i32 0, i32 1, !dbg !10193 | |
| %36 = load i32, i32* %35, align 4, !dbg !10193 | |
| %37 = load %struct.Matrixf_t*, %struct.Matrixf_t** %7, align 8, !dbg !10194 | |
| %38 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %37, i32 0, i32 1, !dbg !10195 | |
| %39 = load i32, i32* %38, align 4, !dbg !10195 | |
| %40 = icmp eq i32 %36, %39, !dbg !10196 | |
| br i1 %40, label %41, label %80, !dbg !10197 | |
| 41: ; preds = %33 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !10198, metadata !DIExpression()), !dbg !10200 | |
| %42 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10201 | |
| %43 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %42, i32 0, i32 0, !dbg !10202 | |
| %44 = load i32, i32* %43, align 8, !dbg !10202 | |
| %45 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !10203 | |
| %46 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %45, i32 0, i32 1, !dbg !10204 | |
| %47 = load i32, i32* %46, align 4, !dbg !10204 | |
| %48 = mul i32 %44, %47, !dbg !10205 | |
| store i32 %48, i32* %8, align 4, !dbg !10200 | |
| call void @llvm.dbg.declare(metadata i32* %9, metadata !10206, metadata !DIExpression()), !dbg !10207 | |
| store i32 0, i32* %9, align 4, !dbg !10208 | |
| br label %49, !dbg !10210 | |
| 49: ; preds = %76, %41 | |
| %50 = load i32, i32* %9, align 4, !dbg !10211 | |
| %51 = load i32, i32* %8, align 4, !dbg !10213 | |
| %52 = icmp ult i32 %50, %51, !dbg !10214 | |
| br i1 %52, label %53, label %79, !dbg !10215 | |
| 53: ; preds = %49 | |
| %54 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10216 | |
| %55 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %54, i32 0, i32 2, !dbg !10217 | |
| %56 = load float*, float** %55, align 8, !dbg !10217 | |
| %57 = load i32, i32* %9, align 4, !dbg !10218 | |
| %58 = zext i32 %57 to i64, !dbg !10216 | |
| %59 = getelementptr inbounds float, float* %56, i64 %58, !dbg !10216 | |
| %60 = load float, float* %59, align 4, !dbg !10216 | |
| %61 = load %struct.Matrixf_t*, %struct.Matrixf_t** %6, align 8, !dbg !10219 | |
| %62 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %61, i32 0, i32 2, !dbg !10220 | |
| %63 = load float*, float** %62, align 8, !dbg !10220 | |
| %64 = load i32, i32* %9, align 4, !dbg !10221 | |
| %65 = zext i32 %64 to i64, !dbg !10219 | |
| %66 = getelementptr inbounds float, float* %63, i64 %65, !dbg !10219 | |
| %67 = load float, float* %66, align 4, !dbg !10219 | |
| %68 = fadd float %60, %67, !dbg !10222 | |
| %69 = fmul float %68, 5.000000e-01, !dbg !10223 | |
| %70 = load %struct.Matrixf_t*, %struct.Matrixf_t** %7, align 8, !dbg !10224 | |
| %71 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %70, i32 0, i32 2, !dbg !10225 | |
| %72 = load float*, float** %71, align 8, !dbg !10225 | |
| %73 = load i32, i32* %9, align 4, !dbg !10226 | |
| %74 = zext i32 %73 to i64, !dbg !10224 | |
| %75 = getelementptr inbounds float, float* %72, i64 %74, !dbg !10224 | |
| store float %69, float* %75, align 4, !dbg !10227 | |
| br label %76, !dbg !10224 | |
| 76: ; preds = %53 | |
| %77 = load i32, i32* %9, align 4, !dbg !10228 | |
| %78 = add i32 %77, 1, !dbg !10228 | |
| store i32 %78, i32* %9, align 4, !dbg !10228 | |
| br label %49, !dbg !10229, !llvm.loop !10230 | |
| 79: ; preds = %49 | |
| store i64 1, i64* %4, align 8, !dbg !10232 | |
| br label %81, !dbg !10232 | |
| 80: ; preds = %33, %25, %17, %3 | |
| store i64 0, i64* %4, align 8, !dbg !10233 | |
| br label %81, !dbg !10233 | |
| 81: ; preds = %80, %79 | |
| %82 = load i64, i64* %4, align 8, !dbg !10234 | |
| ret i64 %82, !dbg !10234 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @matrixAddIdentityf(%struct.Matrixf_t* %0) #0 !dbg !10235 { | |
| %2 = alloca %struct.Matrixf_t*, align 8 | |
| %3 = alloca i32, align 4 | |
| %4 = alloca i32, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %2, metadata !10236, metadata !DIExpression()), !dbg !10237 | |
| call void @llvm.dbg.declare(metadata i32* %3, metadata !10238, metadata !DIExpression()), !dbg !10239 | |
| %5 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10240 | |
| %6 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %5, i32 0, i32 0, !dbg !10241 | |
| %7 = load i32, i32* %6, align 8, !dbg !10241 | |
| store i32 %7, i32* %3, align 4, !dbg !10239 | |
| call void @llvm.dbg.declare(metadata i32* %4, metadata !10242, metadata !DIExpression()), !dbg !10243 | |
| %8 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10244 | |
| %9 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %8, i32 0, i32 1, !dbg !10246 | |
| %10 = load i32, i32* %9, align 4, !dbg !10246 | |
| %11 = load i32, i32* %3, align 4, !dbg !10247 | |
| %12 = icmp ult i32 %10, %11, !dbg !10248 | |
| br i1 %12, label %13, label %17, !dbg !10249 | |
| 13: ; preds = %1 | |
| %14 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10250 | |
| %15 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %14, i32 0, i32 1, !dbg !10251 | |
| %16 = load i32, i32* %15, align 4, !dbg !10251 | |
| store i32 %16, i32* %3, align 4, !dbg !10252 | |
| br label %17, !dbg !10253 | |
| 17: ; preds = %13, %1 | |
| store i32 0, i32* %4, align 4, !dbg !10254 | |
| br label %18, !dbg !10256 | |
| 18: ; preds = %37, %17 | |
| %19 = load i32, i32* %4, align 4, !dbg !10257 | |
| %20 = load i32, i32* %3, align 4, !dbg !10259 | |
| %21 = icmp ult i32 %19, %20, !dbg !10260 | |
| br i1 %21, label %22, label %40, !dbg !10261 | |
| 22: ; preds = %18 | |
| %23 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10262 | |
| %24 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %23, i32 0, i32 2, !dbg !10262 | |
| %25 = load float*, float** %24, align 8, !dbg !10262 | |
| %26 = load i32, i32* %4, align 4, !dbg !10262 | |
| %27 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10262 | |
| %28 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %27, i32 0, i32 1, !dbg !10262 | |
| %29 = load i32, i32* %28, align 4, !dbg !10262 | |
| %30 = mul i32 %26, %29, !dbg !10262 | |
| %31 = load i32, i32* %4, align 4, !dbg !10262 | |
| %32 = add i32 %30, %31, !dbg !10262 | |
| %33 = zext i32 %32 to i64, !dbg !10262 | |
| %34 = getelementptr inbounds float, float* %25, i64 %33, !dbg !10262 | |
| %35 = load float, float* %34, align 4, !dbg !10263 | |
| %36 = fadd float %35, 1.000000e+00, !dbg !10263 | |
| store float %36, float* %34, align 4, !dbg !10263 | |
| br label %37, !dbg !10262 | |
| 37: ; preds = %22 | |
| %38 = load i32, i32* %4, align 4, !dbg !10264 | |
| %39 = add i32 %38, 1, !dbg !10264 | |
| store i32 %39, i32* %4, align 4, !dbg !10264 | |
| br label %18, !dbg !10265, !llvm.loop !10266 | |
| 40: ; preds = %18 | |
| ret void, !dbg !10268 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @matrixMinusIdentityf(%struct.Matrixf_t* %0) #0 !dbg !10269 { | |
| %2 = alloca %struct.Matrixf_t*, align 8 | |
| %3 = alloca i32, align 4 | |
| %4 = alloca i32, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %2, metadata !10270, metadata !DIExpression()), !dbg !10271 | |
| call void @llvm.dbg.declare(metadata i32* %3, metadata !10272, metadata !DIExpression()), !dbg !10273 | |
| %5 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10274 | |
| %6 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %5, i32 0, i32 0, !dbg !10275 | |
| %7 = load i32, i32* %6, align 8, !dbg !10275 | |
| store i32 %7, i32* %3, align 4, !dbg !10273 | |
| call void @llvm.dbg.declare(metadata i32* %4, metadata !10276, metadata !DIExpression()), !dbg !10277 | |
| %8 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10278 | |
| %9 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %8, i32 0, i32 1, !dbg !10280 | |
| %10 = load i32, i32* %9, align 4, !dbg !10280 | |
| %11 = load i32, i32* %3, align 4, !dbg !10281 | |
| %12 = icmp ult i32 %10, %11, !dbg !10282 | |
| br i1 %12, label %13, label %17, !dbg !10283 | |
| 13: ; preds = %1 | |
| %14 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10284 | |
| %15 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %14, i32 0, i32 1, !dbg !10285 | |
| %16 = load i32, i32* %15, align 4, !dbg !10285 | |
| store i32 %16, i32* %3, align 4, !dbg !10286 | |
| br label %17, !dbg !10287 | |
| 17: ; preds = %13, %1 | |
| store i32 0, i32* %4, align 4, !dbg !10288 | |
| br label %18, !dbg !10290 | |
| 18: ; preds = %37, %17 | |
| %19 = load i32, i32* %4, align 4, !dbg !10291 | |
| %20 = load i32, i32* %3, align 4, !dbg !10293 | |
| %21 = icmp ult i32 %19, %20, !dbg !10294 | |
| br i1 %21, label %22, label %40, !dbg !10295 | |
| 22: ; preds = %18 | |
| %23 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10296 | |
| %24 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %23, i32 0, i32 2, !dbg !10296 | |
| %25 = load float*, float** %24, align 8, !dbg !10296 | |
| %26 = load i32, i32* %4, align 4, !dbg !10296 | |
| %27 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10296 | |
| %28 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %27, i32 0, i32 1, !dbg !10296 | |
| %29 = load i32, i32* %28, align 4, !dbg !10296 | |
| %30 = mul i32 %26, %29, !dbg !10296 | |
| %31 = load i32, i32* %4, align 4, !dbg !10296 | |
| %32 = add i32 %30, %31, !dbg !10296 | |
| %33 = zext i32 %32 to i64, !dbg !10296 | |
| %34 = getelementptr inbounds float, float* %25, i64 %33, !dbg !10296 | |
| %35 = load float, float* %34, align 4, !dbg !10297 | |
| %36 = fsub float %35, 1.000000e+00, !dbg !10297 | |
| store float %36, float* %34, align 4, !dbg !10297 | |
| br label %37, !dbg !10296 | |
| 37: ; preds = %22 | |
| %38 = load i32, i32* %4, align 4, !dbg !10298 | |
| %39 = add i32 %38, 1, !dbg !10298 | |
| store i32 %39, i32* %4, align 4, !dbg !10298 | |
| br label %18, !dbg !10299, !llvm.loop !10300 | |
| 40: ; preds = %18 | |
| ret void, !dbg !10302 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @matrixIdentityMinusf(%struct.Matrixf_t* %0) #0 !dbg !10303 { | |
| %2 = alloca %struct.Matrixf_t*, align 8 | |
| %3 = alloca i32, align 4 | |
| %4 = alloca i32, align 4 | |
| %5 = alloca float, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %2, metadata !10304, metadata !DIExpression()), !dbg !10305 | |
| call void @llvm.dbg.declare(metadata i32* %3, metadata !10306, metadata !DIExpression()), !dbg !10307 | |
| call void @llvm.dbg.declare(metadata i32* %4, metadata !10308, metadata !DIExpression()), !dbg !10309 | |
| store i32 0, i32* %3, align 4, !dbg !10310 | |
| br label %6, !dbg !10312 | |
| 6: ; preds = %56, %1 | |
| %7 = load i32, i32* %3, align 4, !dbg !10313 | |
| %8 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10315 | |
| %9 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %8, i32 0, i32 0, !dbg !10316 | |
| %10 = load i32, i32* %9, align 8, !dbg !10316 | |
| %11 = icmp ult i32 %7, %10, !dbg !10317 | |
| br i1 %11, label %12, label %59, !dbg !10318 | |
| 12: ; preds = %6 | |
| store i32 0, i32* %4, align 4, !dbg !10319 | |
| br label %13, !dbg !10322 | |
| 13: ; preds = %52, %12 | |
| %14 = load i32, i32* %4, align 4, !dbg !10323 | |
| %15 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10325 | |
| %16 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %15, i32 0, i32 1, !dbg !10326 | |
| %17 = load i32, i32* %16, align 4, !dbg !10326 | |
| %18 = icmp ult i32 %14, %17, !dbg !10327 | |
| br i1 %18, label %19, label %55, !dbg !10328 | |
| 19: ; preds = %13 | |
| call void @llvm.dbg.declare(metadata float* %5, metadata !10329, metadata !DIExpression()), !dbg !10331 | |
| store float 0.000000e+00, float* %5, align 4, !dbg !10331 | |
| %20 = load i32, i32* %4, align 4, !dbg !10332 | |
| %21 = load i32, i32* %3, align 4, !dbg !10334 | |
| %22 = icmp eq i32 %20, %21, !dbg !10335 | |
| br i1 %22, label %23, label %24, !dbg !10336 | |
| 23: ; preds = %19 | |
| store float 1.000000e+00, float* %5, align 4, !dbg !10337 | |
| br label %24, !dbg !10338 | |
| 24: ; preds = %23, %19 | |
| %25 = load float, float* %5, align 4, !dbg !10339 | |
| %26 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10339 | |
| %27 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %26, i32 0, i32 2, !dbg !10339 | |
| %28 = load float*, float** %27, align 8, !dbg !10339 | |
| %29 = load i32, i32* %3, align 4, !dbg !10339 | |
| %30 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10339 | |
| %31 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %30, i32 0, i32 1, !dbg !10339 | |
| %32 = load i32, i32* %31, align 4, !dbg !10339 | |
| %33 = mul i32 %29, %32, !dbg !10339 | |
| %34 = load i32, i32* %4, align 4, !dbg !10339 | |
| %35 = add i32 %33, %34, !dbg !10339 | |
| %36 = zext i32 %35 to i64, !dbg !10339 | |
| %37 = getelementptr inbounds float, float* %28, i64 %36, !dbg !10339 | |
| %38 = load float, float* %37, align 4, !dbg !10339 | |
| %39 = fsub float %25, %38, !dbg !10339 | |
| %40 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10339 | |
| %41 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %40, i32 0, i32 2, !dbg !10339 | |
| %42 = load float*, float** %41, align 8, !dbg !10339 | |
| %43 = load i32, i32* %3, align 4, !dbg !10339 | |
| %44 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10339 | |
| %45 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %44, i32 0, i32 1, !dbg !10339 | |
| %46 = load i32, i32* %45, align 4, !dbg !10339 | |
| %47 = mul i32 %43, %46, !dbg !10339 | |
| %48 = load i32, i32* %4, align 4, !dbg !10339 | |
| %49 = add i32 %47, %48, !dbg !10339 | |
| %50 = zext i32 %49 to i64, !dbg !10339 | |
| %51 = getelementptr inbounds float, float* %42, i64 %50, !dbg !10339 | |
| store float %39, float* %51, align 4, !dbg !10339 | |
| br label %52, !dbg !10340 | |
| 52: ; preds = %24 | |
| %53 = load i32, i32* %4, align 4, !dbg !10341 | |
| %54 = add i32 %53, 1, !dbg !10341 | |
| store i32 %54, i32* %4, align 4, !dbg !10341 | |
| br label %13, !dbg !10342, !llvm.loop !10343 | |
| 55: ; preds = %13 | |
| br label %56, !dbg !10345 | |
| 56: ; preds = %55 | |
| %57 = load i32, i32* %3, align 4, !dbg !10346 | |
| %58 = add i32 %57, 1, !dbg !10346 | |
| store i32 %58, i32* %3, align 4, !dbg !10346 | |
| br label %6, !dbg !10347, !llvm.loop !10348 | |
| 59: ; preds = %6 | |
| ret void, !dbg !10350 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @matrixDotRowsf(%struct.Matrixf_t* %0, i32 %1, i32 %2) #0 !dbg !10351 { | |
| %4 = alloca %struct.Matrixf_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca i32, align 4 | |
| %7 = alloca i32, align 4 | |
| %8 = alloca float, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %4, metadata !10352, metadata !DIExpression()), !dbg !10353 | |
| store i32 %1, i32* %5, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !10354, metadata !DIExpression()), !dbg !10355 | |
| store i32 %2, i32* %6, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !10356, metadata !DIExpression()), !dbg !10357 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !10358, metadata !DIExpression()), !dbg !10359 | |
| call void @llvm.dbg.declare(metadata float* %8, metadata !10360, metadata !DIExpression()), !dbg !10361 | |
| store float 0.000000e+00, float* %8, align 4, !dbg !10361 | |
| store i32 0, i32* %7, align 4, !dbg !10362 | |
| br label %9, !dbg !10364 | |
| 9: ; preds = %45, %3 | |
| %10 = load i32, i32* %7, align 4, !dbg !10365 | |
| %11 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10367 | |
| %12 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %11, i32 0, i32 1, !dbg !10368 | |
| %13 = load i32, i32* %12, align 4, !dbg !10368 | |
| %14 = icmp ult i32 %10, %13, !dbg !10369 | |
| br i1 %14, label %15, label %48, !dbg !10370 | |
| 15: ; preds = %9 | |
| %16 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10371 | |
| %17 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %16, i32 0, i32 2, !dbg !10371 | |
| %18 = load float*, float** %17, align 8, !dbg !10371 | |
| %19 = load i32, i32* %5, align 4, !dbg !10371 | |
| %20 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10371 | |
| %21 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %20, i32 0, i32 1, !dbg !10371 | |
| %22 = load i32, i32* %21, align 4, !dbg !10371 | |
| %23 = mul i32 %19, %22, !dbg !10371 | |
| %24 = load i32, i32* %7, align 4, !dbg !10371 | |
| %25 = add i32 %23, %24, !dbg !10371 | |
| %26 = zext i32 %25 to i64, !dbg !10371 | |
| %27 = getelementptr inbounds float, float* %18, i64 %26, !dbg !10371 | |
| %28 = load float, float* %27, align 4, !dbg !10371 | |
| %29 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10373 | |
| %30 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %29, i32 0, i32 2, !dbg !10373 | |
| %31 = load float*, float** %30, align 8, !dbg !10373 | |
| %32 = load i32, i32* %6, align 4, !dbg !10373 | |
| %33 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10373 | |
| %34 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %33, i32 0, i32 1, !dbg !10373 | |
| %35 = load i32, i32* %34, align 4, !dbg !10373 | |
| %36 = mul i32 %32, %35, !dbg !10373 | |
| %37 = load i32, i32* %7, align 4, !dbg !10373 | |
| %38 = add i32 %36, %37, !dbg !10373 | |
| %39 = zext i32 %38 to i64, !dbg !10373 | |
| %40 = getelementptr inbounds float, float* %31, i64 %39, !dbg !10373 | |
| %41 = load float, float* %40, align 4, !dbg !10373 | |
| %42 = fmul float %28, %41, !dbg !10374 | |
| %43 = load float, float* %8, align 4, !dbg !10375 | |
| %44 = fadd float %43, %42, !dbg !10375 | |
| store float %44, float* %8, align 4, !dbg !10375 | |
| br label %45, !dbg !10376 | |
| 45: ; preds = %15 | |
| %46 = load i32, i32* %7, align 4, !dbg !10377 | |
| %47 = add i32 %46, 1, !dbg !10377 | |
| store i32 %47, i32* %7, align 4, !dbg !10377 | |
| br label %9, !dbg !10378, !llvm.loop !10379 | |
| 48: ; preds = %9 | |
| %49 = load float, float* %8, align 4, !dbg !10381 | |
| ret float %49, !dbg !10382 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixTransposef(%struct.Matrixf_t* %0, %struct.Matrixf_t* %1) #0 !dbg !10383 { | |
| %3 = alloca i64, align 8 | |
| %4 = alloca %struct.Matrixf_t*, align 8 | |
| %5 = alloca %struct.Matrixf_t*, align 8 | |
| %6 = alloca i32, align 4 | |
| %7 = alloca i32, align 4 | |
| %8 = alloca float, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %4, metadata !10384, metadata !DIExpression()), !dbg !10385 | |
| store %struct.Matrixf_t* %1, %struct.Matrixf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %5, metadata !10386, metadata !DIExpression()), !dbg !10387 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !10388, metadata !DIExpression()), !dbg !10389 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !10390, metadata !DIExpression()), !dbg !10391 | |
| %9 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10392 | |
| %10 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10394 | |
| %11 = icmp eq %struct.Matrixf_t* %9, %10, !dbg !10395 | |
| br i1 %11, label %12, label %102, !dbg !10396 | |
| 12: ; preds = %2 | |
| %13 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10397 | |
| %14 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %13, i32 0, i32 0, !dbg !10398 | |
| %15 = load i32, i32* %14, align 8, !dbg !10398 | |
| %16 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10399 | |
| %17 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %16, i32 0, i32 1, !dbg !10400 | |
| %18 = load i32, i32* %17, align 4, !dbg !10400 | |
| %19 = icmp eq i32 %15, %18, !dbg !10401 | |
| br i1 %19, label %20, label %102, !dbg !10402 | |
| 20: ; preds = %12 | |
| call void @llvm.dbg.declare(metadata float* %8, metadata !10403, metadata !DIExpression()), !dbg !10405 | |
| store i32 0, i32* %6, align 4, !dbg !10406 | |
| br label %21, !dbg !10408 | |
| 21: ; preds = %98, %20 | |
| %22 = load i32, i32* %6, align 4, !dbg !10409 | |
| %23 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10411 | |
| %24 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %23, i32 0, i32 0, !dbg !10412 | |
| %25 = load i32, i32* %24, align 8, !dbg !10412 | |
| %26 = sub i32 %25, 1, !dbg !10413 | |
| %27 = icmp ult i32 %22, %26, !dbg !10414 | |
| br i1 %27, label %28, label %101, !dbg !10415 | |
| 28: ; preds = %21 | |
| %29 = load i32, i32* %6, align 4, !dbg !10416 | |
| %30 = add i32 %29, 1, !dbg !10419 | |
| store i32 %30, i32* %7, align 4, !dbg !10420 | |
| br label %31, !dbg !10421 | |
| 31: ; preds = %94, %28 | |
| %32 = load i32, i32* %7, align 4, !dbg !10422 | |
| %33 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10424 | |
| %34 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %33, i32 0, i32 1, !dbg !10425 | |
| %35 = load i32, i32* %34, align 4, !dbg !10425 | |
| %36 = icmp ult i32 %32, %35, !dbg !10426 | |
| br i1 %36, label %37, label %97, !dbg !10427 | |
| 37: ; preds = %31 | |
| %38 = load i32, i32* %6, align 4, !dbg !10428 | |
| %39 = load i32, i32* %7, align 4, !dbg !10431 | |
| %40 = icmp ne i32 %38, %39, !dbg !10432 | |
| br i1 %40, label %41, label %93, !dbg !10433 | |
| 41: ; preds = %37 | |
| %42 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10434 | |
| %43 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %42, i32 0, i32 2, !dbg !10434 | |
| %44 = load float*, float** %43, align 8, !dbg !10434 | |
| %45 = load i32, i32* %6, align 4, !dbg !10434 | |
| %46 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10434 | |
| %47 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %46, i32 0, i32 1, !dbg !10434 | |
| %48 = load i32, i32* %47, align 4, !dbg !10434 | |
| %49 = mul i32 %45, %48, !dbg !10434 | |
| %50 = load i32, i32* %7, align 4, !dbg !10434 | |
| %51 = add i32 %49, %50, !dbg !10434 | |
| %52 = zext i32 %51 to i64, !dbg !10434 | |
| %53 = getelementptr inbounds float, float* %44, i64 %52, !dbg !10434 | |
| %54 = load float, float* %53, align 4, !dbg !10434 | |
| store float %54, float* %8, align 4, !dbg !10436 | |
| %55 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10437 | |
| %56 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %55, i32 0, i32 2, !dbg !10437 | |
| %57 = load float*, float** %56, align 8, !dbg !10437 | |
| %58 = load i32, i32* %7, align 4, !dbg !10437 | |
| %59 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10437 | |
| %60 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %59, i32 0, i32 1, !dbg !10437 | |
| %61 = load i32, i32* %60, align 4, !dbg !10437 | |
| %62 = mul i32 %58, %61, !dbg !10437 | |
| %63 = load i32, i32* %6, align 4, !dbg !10437 | |
| %64 = add i32 %62, %63, !dbg !10437 | |
| %65 = zext i32 %64 to i64, !dbg !10437 | |
| %66 = getelementptr inbounds float, float* %57, i64 %65, !dbg !10437 | |
| %67 = load float, float* %66, align 4, !dbg !10437 | |
| %68 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10437 | |
| %69 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %68, i32 0, i32 2, !dbg !10437 | |
| %70 = load float*, float** %69, align 8, !dbg !10437 | |
| %71 = load i32, i32* %6, align 4, !dbg !10437 | |
| %72 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10437 | |
| %73 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %72, i32 0, i32 1, !dbg !10437 | |
| %74 = load i32, i32* %73, align 4, !dbg !10437 | |
| %75 = mul i32 %71, %74, !dbg !10437 | |
| %76 = load i32, i32* %7, align 4, !dbg !10437 | |
| %77 = add i32 %75, %76, !dbg !10437 | |
| %78 = zext i32 %77 to i64, !dbg !10437 | |
| %79 = getelementptr inbounds float, float* %70, i64 %78, !dbg !10437 | |
| store float %67, float* %79, align 4, !dbg !10437 | |
| %80 = load float, float* %8, align 4, !dbg !10438 | |
| %81 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10438 | |
| %82 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %81, i32 0, i32 2, !dbg !10438 | |
| %83 = load float*, float** %82, align 8, !dbg !10438 | |
| %84 = load i32, i32* %7, align 4, !dbg !10438 | |
| %85 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10438 | |
| %86 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %85, i32 0, i32 1, !dbg !10438 | |
| %87 = load i32, i32* %86, align 4, !dbg !10438 | |
| %88 = mul i32 %84, %87, !dbg !10438 | |
| %89 = load i32, i32* %6, align 4, !dbg !10438 | |
| %90 = add i32 %88, %89, !dbg !10438 | |
| %91 = zext i32 %90 to i64, !dbg !10438 | |
| %92 = getelementptr inbounds float, float* %83, i64 %91, !dbg !10438 | |
| store float %80, float* %92, align 4, !dbg !10438 | |
| br label %93, !dbg !10439 | |
| 93: ; preds = %41, %37 | |
| br label %94, !dbg !10440 | |
| 94: ; preds = %93 | |
| %95 = load i32, i32* %7, align 4, !dbg !10441 | |
| %96 = add i32 %95, 1, !dbg !10441 | |
| store i32 %96, i32* %7, align 4, !dbg !10441 | |
| br label %31, !dbg !10442, !llvm.loop !10443 | |
| 97: ; preds = %31 | |
| br label %98, !dbg !10445 | |
| 98: ; preds = %97 | |
| %99 = load i32, i32* %6, align 4, !dbg !10446 | |
| %100 = add i32 %99, 1, !dbg !10446 | |
| store i32 %100, i32* %6, align 4, !dbg !10446 | |
| br label %21, !dbg !10447, !llvm.loop !10448 | |
| 101: ; preds = %21 | |
| store i64 1, i64* %3, align 8, !dbg !10450 | |
| br label %167, !dbg !10450 | |
| 102: ; preds = %12, %2 | |
| %103 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10451 | |
| %104 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %103, i32 0, i32 0, !dbg !10453 | |
| %105 = load i32, i32* %104, align 8, !dbg !10453 | |
| %106 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10454 | |
| %107 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %106, i32 0, i32 1, !dbg !10455 | |
| %108 = load i32, i32* %107, align 4, !dbg !10455 | |
| %109 = icmp eq i32 %105, %108, !dbg !10456 | |
| br i1 %109, label %110, label %166, !dbg !10457 | |
| 110: ; preds = %102 | |
| %111 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10458 | |
| %112 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %111, i32 0, i32 1, !dbg !10459 | |
| %113 = load i32, i32* %112, align 4, !dbg !10459 | |
| %114 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10460 | |
| %115 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %114, i32 0, i32 0, !dbg !10461 | |
| %116 = load i32, i32* %115, align 8, !dbg !10461 | |
| %117 = icmp eq i32 %113, %116, !dbg !10462 | |
| br i1 %117, label %118, label %166, !dbg !10463 | |
| 118: ; preds = %110 | |
| store i32 0, i32* %6, align 4, !dbg !10464 | |
| br label %119, !dbg !10467 | |
| 119: ; preds = %162, %118 | |
| %120 = load i32, i32* %6, align 4, !dbg !10468 | |
| %121 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10470 | |
| %122 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %121, i32 0, i32 0, !dbg !10471 | |
| %123 = load i32, i32* %122, align 8, !dbg !10471 | |
| %124 = icmp ult i32 %120, %123, !dbg !10472 | |
| br i1 %124, label %125, label %165, !dbg !10473 | |
| 125: ; preds = %119 | |
| store i32 0, i32* %7, align 4, !dbg !10474 | |
| br label %126, !dbg !10477 | |
| 126: ; preds = %158, %125 | |
| %127 = load i32, i32* %7, align 4, !dbg !10478 | |
| %128 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10480 | |
| %129 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %128, i32 0, i32 1, !dbg !10481 | |
| %130 = load i32, i32* %129, align 4, !dbg !10481 | |
| %131 = icmp ult i32 %127, %130, !dbg !10482 | |
| br i1 %131, label %132, label %161, !dbg !10483 | |
| 132: ; preds = %126 | |
| %133 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10484 | |
| %134 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %133, i32 0, i32 2, !dbg !10484 | |
| %135 = load float*, float** %134, align 8, !dbg !10484 | |
| %136 = load i32, i32* %6, align 4, !dbg !10484 | |
| %137 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10484 | |
| %138 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %137, i32 0, i32 1, !dbg !10484 | |
| %139 = load i32, i32* %138, align 4, !dbg !10484 | |
| %140 = mul i32 %136, %139, !dbg !10484 | |
| %141 = load i32, i32* %7, align 4, !dbg !10484 | |
| %142 = add i32 %140, %141, !dbg !10484 | |
| %143 = zext i32 %142 to i64, !dbg !10484 | |
| %144 = getelementptr inbounds float, float* %135, i64 %143, !dbg !10484 | |
| %145 = load float, float* %144, align 4, !dbg !10484 | |
| %146 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10484 | |
| %147 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %146, i32 0, i32 2, !dbg !10484 | |
| %148 = load float*, float** %147, align 8, !dbg !10484 | |
| %149 = load i32, i32* %7, align 4, !dbg !10484 | |
| %150 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10484 | |
| %151 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %150, i32 0, i32 1, !dbg !10484 | |
| %152 = load i32, i32* %151, align 4, !dbg !10484 | |
| %153 = mul i32 %149, %152, !dbg !10484 | |
| %154 = load i32, i32* %6, align 4, !dbg !10484 | |
| %155 = add i32 %153, %154, !dbg !10484 | |
| %156 = zext i32 %155 to i64, !dbg !10484 | |
| %157 = getelementptr inbounds float, float* %148, i64 %156, !dbg !10484 | |
| store float %145, float* %157, align 4, !dbg !10484 | |
| br label %158, !dbg !10486 | |
| 158: ; preds = %132 | |
| %159 = load i32, i32* %7, align 4, !dbg !10487 | |
| %160 = add i32 %159, 1, !dbg !10487 | |
| store i32 %160, i32* %7, align 4, !dbg !10487 | |
| br label %126, !dbg !10488, !llvm.loop !10489 | |
| 161: ; preds = %126 | |
| br label %162, !dbg !10491 | |
| 162: ; preds = %161 | |
| %163 = load i32, i32* %6, align 4, !dbg !10492 | |
| %164 = add i32 %163, 1, !dbg !10492 | |
| store i32 %164, i32* %6, align 4, !dbg !10492 | |
| br label %119, !dbg !10493, !llvm.loop !10494 | |
| 165: ; preds = %119 | |
| store i64 1, i64* %3, align 8, !dbg !10496 | |
| br label %167, !dbg !10496 | |
| 166: ; preds = %110, %102 | |
| store i64 0, i64* %3, align 8, !dbg !10497 | |
| br label %167, !dbg !10497 | |
| 167: ; preds = %166, %165, %101 | |
| %168 = load i64, i64* %3, align 8, !dbg !10498 | |
| ret i64 %168, !dbg !10498 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixInversef(%struct.Matrixf_t* %0, %struct.Matrixf_t* %1) #0 !dbg !10499 { | |
| %3 = alloca i64, align 8 | |
| %4 = alloca %struct.Matrixf_t*, align 8 | |
| %5 = alloca %struct.Matrixf_t*, align 8 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %4, metadata !10500, metadata !DIExpression()), !dbg !10501 | |
| store %struct.Matrixf_t* %1, %struct.Matrixf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %5, metadata !10502, metadata !DIExpression()), !dbg !10503 | |
| %6 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10504 | |
| %7 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %6, i32 0, i32 0, !dbg !10506 | |
| %8 = load i32, i32* %7, align 8, !dbg !10506 | |
| %9 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10507 | |
| %10 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 1, !dbg !10508 | |
| %11 = load i32, i32* %10, align 4, !dbg !10508 | |
| %12 = icmp ne i32 %8, %11, !dbg !10509 | |
| br i1 %12, label %29, label %13, !dbg !10510 | |
| 13: ; preds = %2 | |
| %14 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10511 | |
| %15 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %14, i32 0, i32 0, !dbg !10512 | |
| %16 = load i32, i32* %15, align 8, !dbg !10512 | |
| %17 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10513 | |
| %18 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %17, i32 0, i32 1, !dbg !10514 | |
| %19 = load i32, i32* %18, align 4, !dbg !10514 | |
| %20 = icmp ne i32 %16, %19, !dbg !10515 | |
| br i1 %20, label %29, label %21, !dbg !10516 | |
| 21: ; preds = %13 | |
| %22 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10517 | |
| %23 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %22, i32 0, i32 0, !dbg !10518 | |
| %24 = load i32, i32* %23, align 8, !dbg !10518 | |
| %25 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10519 | |
| %26 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %25, i32 0, i32 0, !dbg !10520 | |
| %27 = load i32, i32* %26, align 8, !dbg !10520 | |
| %28 = icmp ne i32 %24, %27, !dbg !10521 | |
| br i1 %28, label %29, label %30, !dbg !10522 | |
| 29: ; preds = %21, %13, %2 | |
| store i64 0, i64* %3, align 8, !dbg !10523 | |
| br label %62, !dbg !10523 | |
| 30: ; preds = %21 | |
| %31 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10524 | |
| %32 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %31, i32 0, i32 0, !dbg !10525 | |
| %33 = load i32, i32* %32, align 8, !dbg !10525 | |
| switch i32 %33, label %61 [ | |
| i32 1, label %34 | |
| i32 2, label %53 | |
| i32 3, label %57 | |
| ], !dbg !10526 | |
| 34: ; preds = %30 | |
| %35 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10527 | |
| %36 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %35, i32 0, i32 2, !dbg !10530 | |
| %37 = load float*, float** %36, align 8, !dbg !10530 | |
| %38 = getelementptr inbounds float, float* %37, i64 0, !dbg !10527 | |
| %39 = load float, float* %38, align 4, !dbg !10527 | |
| %40 = fcmp une float %39, 0.000000e+00, !dbg !10531 | |
| br i1 %40, label %41, label %52, !dbg !10532 | |
| 41: ; preds = %34 | |
| %42 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10533 | |
| %43 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %42, i32 0, i32 2, !dbg !10535 | |
| %44 = load float*, float** %43, align 8, !dbg !10535 | |
| %45 = getelementptr inbounds float, float* %44, i64 0, !dbg !10533 | |
| %46 = load float, float* %45, align 4, !dbg !10533 | |
| %47 = fdiv float 1.000000e+00, %46, !dbg !10536 | |
| %48 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10537 | |
| %49 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %48, i32 0, i32 2, !dbg !10538 | |
| %50 = load float*, float** %49, align 8, !dbg !10538 | |
| %51 = getelementptr inbounds float, float* %50, i64 0, !dbg !10537 | |
| store float %47, float* %51, align 4, !dbg !10539 | |
| store i64 1, i64* %3, align 8, !dbg !10540 | |
| br label %62, !dbg !10540 | |
| 52: ; preds = %34 | |
| store i64 0, i64* %3, align 8, !dbg !10541 | |
| br label %62, !dbg !10541 | |
| 53: ; preds = %30 | |
| %54 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10542 | |
| %55 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10543 | |
| %56 = call i64 @matrixInverse2x2f(%struct.Matrixf_t* %54, %struct.Matrixf_t* %55), !dbg !10544 | |
| store i64 %56, i64* %3, align 8, !dbg !10545 | |
| br label %62, !dbg !10545 | |
| 57: ; preds = %30 | |
| %58 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10546 | |
| %59 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10547 | |
| %60 = call i64 @matrixInverse3x3f(%struct.Matrixf_t* %58, %struct.Matrixf_t* %59), !dbg !10548 | |
| store i64 %60, i64* %3, align 8, !dbg !10549 | |
| br label %62, !dbg !10549 | |
| 61: ; preds = %30 | |
| store i64 0, i64* %3, align 8, !dbg !10550 | |
| br label %62, !dbg !10550 | |
| 62: ; preds = %61, %57, %53, %52, %41, %29 | |
| %63 = load i64, i64* %3, align 8, !dbg !10551 | |
| ret i64 %63, !dbg !10551 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define internal i64 @matrixInverse2x2f(%struct.Matrixf_t* %0, %struct.Matrixf_t* %1) #0 !dbg !10552 { | |
| %3 = alloca i64, align 8 | |
| %4 = alloca %struct.Matrixf_t*, align 8 | |
| %5 = alloca %struct.Matrixf_t*, align 8 | |
| %6 = alloca float, align 4 | |
| %7 = alloca float, align 4 | |
| %8 = alloca float, align 4 | |
| %9 = alloca float, align 4 | |
| %10 = alloca float, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %4, metadata !10553, metadata !DIExpression()), !dbg !10554 | |
| store %struct.Matrixf_t* %1, %struct.Matrixf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %5, metadata !10555, metadata !DIExpression()), !dbg !10556 | |
| call void @llvm.dbg.declare(metadata float* %6, metadata !10557, metadata !DIExpression()), !dbg !10558 | |
| %11 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10559 | |
| %12 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %11, i32 0, i32 2, !dbg !10559 | |
| %13 = load float*, float** %12, align 8, !dbg !10559 | |
| %14 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10559 | |
| %15 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %14, i32 0, i32 1, !dbg !10559 | |
| %16 = load i32, i32* %15, align 4, !dbg !10559 | |
| %17 = mul i32 0, %16, !dbg !10559 | |
| %18 = add i32 %17, 0, !dbg !10559 | |
| %19 = zext i32 %18 to i64, !dbg !10559 | |
| %20 = getelementptr inbounds float, float* %13, i64 %19, !dbg !10559 | |
| %21 = load float, float* %20, align 4, !dbg !10559 | |
| store float %21, float* %6, align 4, !dbg !10558 | |
| call void @llvm.dbg.declare(metadata float* %7, metadata !10560, metadata !DIExpression()), !dbg !10561 | |
| %22 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10562 | |
| %23 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %22, i32 0, i32 2, !dbg !10562 | |
| %24 = load float*, float** %23, align 8, !dbg !10562 | |
| %25 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10562 | |
| %26 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %25, i32 0, i32 1, !dbg !10562 | |
| %27 = load i32, i32* %26, align 4, !dbg !10562 | |
| %28 = mul i32 0, %27, !dbg !10562 | |
| %29 = add i32 %28, 1, !dbg !10562 | |
| %30 = zext i32 %29 to i64, !dbg !10562 | |
| %31 = getelementptr inbounds float, float* %24, i64 %30, !dbg !10562 | |
| %32 = load float, float* %31, align 4, !dbg !10562 | |
| store float %32, float* %7, align 4, !dbg !10561 | |
| call void @llvm.dbg.declare(metadata float* %8, metadata !10563, metadata !DIExpression()), !dbg !10564 | |
| %33 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10565 | |
| %34 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %33, i32 0, i32 2, !dbg !10565 | |
| %35 = load float*, float** %34, align 8, !dbg !10565 | |
| %36 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10565 | |
| %37 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %36, i32 0, i32 1, !dbg !10565 | |
| %38 = load i32, i32* %37, align 4, !dbg !10565 | |
| %39 = mul i32 1, %38, !dbg !10565 | |
| %40 = add i32 %39, 0, !dbg !10565 | |
| %41 = zext i32 %40 to i64, !dbg !10565 | |
| %42 = getelementptr inbounds float, float* %35, i64 %41, !dbg !10565 | |
| %43 = load float, float* %42, align 4, !dbg !10565 | |
| store float %43, float* %8, align 4, !dbg !10564 | |
| call void @llvm.dbg.declare(metadata float* %9, metadata !10566, metadata !DIExpression()), !dbg !10567 | |
| %44 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10568 | |
| %45 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %44, i32 0, i32 2, !dbg !10568 | |
| %46 = load float*, float** %45, align 8, !dbg !10568 | |
| %47 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10568 | |
| %48 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %47, i32 0, i32 1, !dbg !10568 | |
| %49 = load i32, i32* %48, align 4, !dbg !10568 | |
| %50 = mul i32 1, %49, !dbg !10568 | |
| %51 = add i32 %50, 1, !dbg !10568 | |
| %52 = zext i32 %51 to i64, !dbg !10568 | |
| %53 = getelementptr inbounds float, float* %46, i64 %52, !dbg !10568 | |
| %54 = load float, float* %53, align 4, !dbg !10568 | |
| store float %54, float* %9, align 4, !dbg !10567 | |
| call void @llvm.dbg.declare(metadata float* %10, metadata !10569, metadata !DIExpression()), !dbg !10570 | |
| %55 = load float, float* %6, align 4, !dbg !10571 | |
| %56 = load float, float* %9, align 4, !dbg !10572 | |
| %57 = fmul float %55, %56, !dbg !10573 | |
| %58 = load float, float* %7, align 4, !dbg !10574 | |
| %59 = load float, float* %8, align 4, !dbg !10575 | |
| %60 = fmul float %58, %59, !dbg !10576 | |
| %61 = fsub float %57, %60, !dbg !10577 | |
| store float %61, float* %10, align 4, !dbg !10570 | |
| %62 = load float, float* %10, align 4, !dbg !10578 | |
| %63 = fcmp une float %62, 0.000000e+00, !dbg !10580 | |
| br i1 %63, label %64, label %121, !dbg !10581 | |
| 64: ; preds = %2 | |
| %65 = load float, float* %10, align 4, !dbg !10582 | |
| %66 = fdiv float 1.000000e+00, %65, !dbg !10584 | |
| store float %66, float* %10, align 4, !dbg !10585 | |
| %67 = load float, float* %10, align 4, !dbg !10586 | |
| %68 = load float, float* %9, align 4, !dbg !10586 | |
| %69 = fmul float %67, %68, !dbg !10586 | |
| %70 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10586 | |
| %71 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %70, i32 0, i32 2, !dbg !10586 | |
| %72 = load float*, float** %71, align 8, !dbg !10586 | |
| %73 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10586 | |
| %74 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %73, i32 0, i32 1, !dbg !10586 | |
| %75 = load i32, i32* %74, align 4, !dbg !10586 | |
| %76 = mul i32 0, %75, !dbg !10586 | |
| %77 = add i32 %76, 0, !dbg !10586 | |
| %78 = zext i32 %77 to i64, !dbg !10586 | |
| %79 = getelementptr inbounds float, float* %72, i64 %78, !dbg !10586 | |
| store float %69, float* %79, align 4, !dbg !10586 | |
| %80 = load float, float* %10, align 4, !dbg !10587 | |
| %81 = fneg float %80, !dbg !10587 | |
| %82 = load float, float* %7, align 4, !dbg !10587 | |
| %83 = fmul float %81, %82, !dbg !10587 | |
| %84 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10587 | |
| %85 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %84, i32 0, i32 2, !dbg !10587 | |
| %86 = load float*, float** %85, align 8, !dbg !10587 | |
| %87 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10587 | |
| %88 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %87, i32 0, i32 1, !dbg !10587 | |
| %89 = load i32, i32* %88, align 4, !dbg !10587 | |
| %90 = mul i32 0, %89, !dbg !10587 | |
| %91 = add i32 %90, 1, !dbg !10587 | |
| %92 = zext i32 %91 to i64, !dbg !10587 | |
| %93 = getelementptr inbounds float, float* %86, i64 %92, !dbg !10587 | |
| store float %83, float* %93, align 4, !dbg !10587 | |
| %94 = load float, float* %10, align 4, !dbg !10588 | |
| %95 = fneg float %94, !dbg !10588 | |
| %96 = load float, float* %8, align 4, !dbg !10588 | |
| %97 = fmul float %95, %96, !dbg !10588 | |
| %98 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10588 | |
| %99 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %98, i32 0, i32 2, !dbg !10588 | |
| %100 = load float*, float** %99, align 8, !dbg !10588 | |
| %101 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10588 | |
| %102 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %101, i32 0, i32 1, !dbg !10588 | |
| %103 = load i32, i32* %102, align 4, !dbg !10588 | |
| %104 = mul i32 1, %103, !dbg !10588 | |
| %105 = add i32 %104, 0, !dbg !10588 | |
| %106 = zext i32 %105 to i64, !dbg !10588 | |
| %107 = getelementptr inbounds float, float* %100, i64 %106, !dbg !10588 | |
| store float %97, float* %107, align 4, !dbg !10588 | |
| %108 = load float, float* %10, align 4, !dbg !10589 | |
| %109 = load float, float* %6, align 4, !dbg !10589 | |
| %110 = fmul float %108, %109, !dbg !10589 | |
| %111 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10589 | |
| %112 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %111, i32 0, i32 2, !dbg !10589 | |
| %113 = load float*, float** %112, align 8, !dbg !10589 | |
| %114 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10589 | |
| %115 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %114, i32 0, i32 1, !dbg !10589 | |
| %116 = load i32, i32* %115, align 4, !dbg !10589 | |
| %117 = mul i32 1, %116, !dbg !10589 | |
| %118 = add i32 %117, 1, !dbg !10589 | |
| %119 = zext i32 %118 to i64, !dbg !10589 | |
| %120 = getelementptr inbounds float, float* %113, i64 %119, !dbg !10589 | |
| store float %110, float* %120, align 4, !dbg !10589 | |
| store i64 1, i64* %3, align 8, !dbg !10590 | |
| br label %122, !dbg !10590 | |
| 121: ; preds = %2 | |
| store i64 0, i64* %3, align 8, !dbg !10591 | |
| br label %122, !dbg !10591 | |
| 122: ; preds = %121, %64 | |
| %123 = load i64, i64* %3, align 8, !dbg !10592 | |
| ret i64 %123, !dbg !10592 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define internal i64 @matrixInverse3x3f(%struct.Matrixf_t* %0, %struct.Matrixf_t* %1) #0 !dbg !10593 { | |
| %3 = alloca i64, align 8 | |
| %4 = alloca %struct.Matrixf_t*, align 8 | |
| %5 = alloca %struct.Matrixf_t*, align 8 | |
| %6 = alloca float, align 4 | |
| %7 = alloca float, align 4 | |
| %8 = alloca float, align 4 | |
| %9 = alloca float, align 4 | |
| %10 = alloca float, align 4 | |
| %11 = alloca float, align 4 | |
| %12 = alloca float, align 4 | |
| %13 = alloca float, align 4 | |
| %14 = alloca float, align 4 | |
| %15 = alloca float, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %4, metadata !10594, metadata !DIExpression()), !dbg !10595 | |
| store %struct.Matrixf_t* %1, %struct.Matrixf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %5, metadata !10596, metadata !DIExpression()), !dbg !10597 | |
| call void @llvm.dbg.declare(metadata float* %6, metadata !10598, metadata !DIExpression()), !dbg !10599 | |
| %16 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10600 | |
| %17 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %16, i32 0, i32 2, !dbg !10600 | |
| %18 = load float*, float** %17, align 8, !dbg !10600 | |
| %19 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10600 | |
| %20 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %19, i32 0, i32 1, !dbg !10600 | |
| %21 = load i32, i32* %20, align 4, !dbg !10600 | |
| %22 = mul i32 0, %21, !dbg !10600 | |
| %23 = add i32 %22, 0, !dbg !10600 | |
| %24 = zext i32 %23 to i64, !dbg !10600 | |
| %25 = getelementptr inbounds float, float* %18, i64 %24, !dbg !10600 | |
| %26 = load float, float* %25, align 4, !dbg !10600 | |
| store float %26, float* %6, align 4, !dbg !10599 | |
| call void @llvm.dbg.declare(metadata float* %7, metadata !10601, metadata !DIExpression()), !dbg !10602 | |
| %27 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10603 | |
| %28 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %27, i32 0, i32 2, !dbg !10603 | |
| %29 = load float*, float** %28, align 8, !dbg !10603 | |
| %30 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10603 | |
| %31 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %30, i32 0, i32 1, !dbg !10603 | |
| %32 = load i32, i32* %31, align 4, !dbg !10603 | |
| %33 = mul i32 0, %32, !dbg !10603 | |
| %34 = add i32 %33, 1, !dbg !10603 | |
| %35 = zext i32 %34 to i64, !dbg !10603 | |
| %36 = getelementptr inbounds float, float* %29, i64 %35, !dbg !10603 | |
| %37 = load float, float* %36, align 4, !dbg !10603 | |
| store float %37, float* %7, align 4, !dbg !10602 | |
| call void @llvm.dbg.declare(metadata float* %8, metadata !10604, metadata !DIExpression()), !dbg !10605 | |
| %38 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10606 | |
| %39 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %38, i32 0, i32 2, !dbg !10606 | |
| %40 = load float*, float** %39, align 8, !dbg !10606 | |
| %41 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10606 | |
| %42 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %41, i32 0, i32 1, !dbg !10606 | |
| %43 = load i32, i32* %42, align 4, !dbg !10606 | |
| %44 = mul i32 0, %43, !dbg !10606 | |
| %45 = add i32 %44, 2, !dbg !10606 | |
| %46 = zext i32 %45 to i64, !dbg !10606 | |
| %47 = getelementptr inbounds float, float* %40, i64 %46, !dbg !10606 | |
| %48 = load float, float* %47, align 4, !dbg !10606 | |
| store float %48, float* %8, align 4, !dbg !10605 | |
| call void @llvm.dbg.declare(metadata float* %9, metadata !10607, metadata !DIExpression()), !dbg !10608 | |
| %49 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10609 | |
| %50 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %49, i32 0, i32 2, !dbg !10609 | |
| %51 = load float*, float** %50, align 8, !dbg !10609 | |
| %52 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10609 | |
| %53 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %52, i32 0, i32 1, !dbg !10609 | |
| %54 = load i32, i32* %53, align 4, !dbg !10609 | |
| %55 = mul i32 1, %54, !dbg !10609 | |
| %56 = add i32 %55, 0, !dbg !10609 | |
| %57 = zext i32 %56 to i64, !dbg !10609 | |
| %58 = getelementptr inbounds float, float* %51, i64 %57, !dbg !10609 | |
| %59 = load float, float* %58, align 4, !dbg !10609 | |
| store float %59, float* %9, align 4, !dbg !10608 | |
| call void @llvm.dbg.declare(metadata float* %10, metadata !10610, metadata !DIExpression()), !dbg !10611 | |
| %60 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10612 | |
| %61 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %60, i32 0, i32 2, !dbg !10612 | |
| %62 = load float*, float** %61, align 8, !dbg !10612 | |
| %63 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10612 | |
| %64 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %63, i32 0, i32 1, !dbg !10612 | |
| %65 = load i32, i32* %64, align 4, !dbg !10612 | |
| %66 = mul i32 1, %65, !dbg !10612 | |
| %67 = add i32 %66, 1, !dbg !10612 | |
| %68 = zext i32 %67 to i64, !dbg !10612 | |
| %69 = getelementptr inbounds float, float* %62, i64 %68, !dbg !10612 | |
| %70 = load float, float* %69, align 4, !dbg !10612 | |
| store float %70, float* %10, align 4, !dbg !10611 | |
| call void @llvm.dbg.declare(metadata float* %11, metadata !10613, metadata !DIExpression()), !dbg !10614 | |
| %71 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10615 | |
| %72 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %71, i32 0, i32 2, !dbg !10615 | |
| %73 = load float*, float** %72, align 8, !dbg !10615 | |
| %74 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10615 | |
| %75 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %74, i32 0, i32 1, !dbg !10615 | |
| %76 = load i32, i32* %75, align 4, !dbg !10615 | |
| %77 = mul i32 1, %76, !dbg !10615 | |
| %78 = add i32 %77, 2, !dbg !10615 | |
| %79 = zext i32 %78 to i64, !dbg !10615 | |
| %80 = getelementptr inbounds float, float* %73, i64 %79, !dbg !10615 | |
| %81 = load float, float* %80, align 4, !dbg !10615 | |
| store float %81, float* %11, align 4, !dbg !10614 | |
| call void @llvm.dbg.declare(metadata float* %12, metadata !10616, metadata !DIExpression()), !dbg !10617 | |
| %82 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10618 | |
| %83 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %82, i32 0, i32 2, !dbg !10618 | |
| %84 = load float*, float** %83, align 8, !dbg !10618 | |
| %85 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10618 | |
| %86 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %85, i32 0, i32 1, !dbg !10618 | |
| %87 = load i32, i32* %86, align 4, !dbg !10618 | |
| %88 = mul i32 2, %87, !dbg !10618 | |
| %89 = add i32 %88, 0, !dbg !10618 | |
| %90 = zext i32 %89 to i64, !dbg !10618 | |
| %91 = getelementptr inbounds float, float* %84, i64 %90, !dbg !10618 | |
| %92 = load float, float* %91, align 4, !dbg !10618 | |
| store float %92, float* %12, align 4, !dbg !10617 | |
| call void @llvm.dbg.declare(metadata float* %13, metadata !10619, metadata !DIExpression()), !dbg !10620 | |
| %93 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10621 | |
| %94 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %93, i32 0, i32 2, !dbg !10621 | |
| %95 = load float*, float** %94, align 8, !dbg !10621 | |
| %96 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10621 | |
| %97 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %96, i32 0, i32 1, !dbg !10621 | |
| %98 = load i32, i32* %97, align 4, !dbg !10621 | |
| %99 = mul i32 2, %98, !dbg !10621 | |
| %100 = add i32 %99, 1, !dbg !10621 | |
| %101 = zext i32 %100 to i64, !dbg !10621 | |
| %102 = getelementptr inbounds float, float* %95, i64 %101, !dbg !10621 | |
| %103 = load float, float* %102, align 4, !dbg !10621 | |
| store float %103, float* %13, align 4, !dbg !10620 | |
| call void @llvm.dbg.declare(metadata float* %14, metadata !10622, metadata !DIExpression()), !dbg !10623 | |
| %104 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10624 | |
| %105 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %104, i32 0, i32 2, !dbg !10624 | |
| %106 = load float*, float** %105, align 8, !dbg !10624 | |
| %107 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10624 | |
| %108 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %107, i32 0, i32 1, !dbg !10624 | |
| %109 = load i32, i32* %108, align 4, !dbg !10624 | |
| %110 = mul i32 2, %109, !dbg !10624 | |
| %111 = add i32 %110, 2, !dbg !10624 | |
| %112 = zext i32 %111 to i64, !dbg !10624 | |
| %113 = getelementptr inbounds float, float* %106, i64 %112, !dbg !10624 | |
| %114 = load float, float* %113, align 4, !dbg !10624 | |
| store float %114, float* %14, align 4, !dbg !10623 | |
| call void @llvm.dbg.declare(metadata float* %15, metadata !10625, metadata !DIExpression()), !dbg !10626 | |
| %115 = load float, float* %6, align 4, !dbg !10627 | |
| %116 = load float, float* %10, align 4, !dbg !10628 | |
| %117 = fmul float %115, %116, !dbg !10629 | |
| %118 = load float, float* %14, align 4, !dbg !10630 | |
| %119 = fmul float %117, %118, !dbg !10631 | |
| %120 = load float, float* %9, align 4, !dbg !10632 | |
| %121 = load float, float* %13, align 4, !dbg !10633 | |
| %122 = fmul float %120, %121, !dbg !10634 | |
| %123 = load float, float* %8, align 4, !dbg !10635 | |
| %124 = fmul float %122, %123, !dbg !10636 | |
| %125 = fadd float %119, %124, !dbg !10637 | |
| %126 = load float, float* %12, align 4, !dbg !10638 | |
| %127 = load float, float* %7, align 4, !dbg !10639 | |
| %128 = fmul float %126, %127, !dbg !10640 | |
| %129 = load float, float* %11, align 4, !dbg !10641 | |
| %130 = fmul float %128, %129, !dbg !10642 | |
| %131 = fadd float %125, %130, !dbg !10643 | |
| %132 = load float, float* %6, align 4, !dbg !10644 | |
| %133 = load float, float* %13, align 4, !dbg !10645 | |
| %134 = fmul float %132, %133, !dbg !10646 | |
| %135 = load float, float* %11, align 4, !dbg !10647 | |
| %136 = fmul float %134, %135, !dbg !10648 | |
| %137 = fsub float %131, %136, !dbg !10649 | |
| %138 = load float, float* %12, align 4, !dbg !10650 | |
| %139 = load float, float* %10, align 4, !dbg !10651 | |
| %140 = fmul float %138, %139, !dbg !10652 | |
| %141 = load float, float* %8, align 4, !dbg !10653 | |
| %142 = fmul float %140, %141, !dbg !10654 | |
| %143 = fsub float %137, %142, !dbg !10655 | |
| %144 = load float, float* %9, align 4, !dbg !10656 | |
| %145 = load float, float* %7, align 4, !dbg !10657 | |
| %146 = fmul float %144, %145, !dbg !10658 | |
| %147 = load float, float* %14, align 4, !dbg !10659 | |
| %148 = fmul float %146, %147, !dbg !10660 | |
| %149 = fsub float %143, %148, !dbg !10661 | |
| store float %149, float* %15, align 4, !dbg !10626 | |
| %150 = load float, float* %15, align 4, !dbg !10662 | |
| %151 = fcmp une float %150, 0.000000e+00, !dbg !10664 | |
| br i1 %151, label %152, label %326, !dbg !10665 | |
| 152: ; preds = %2 | |
| %153 = load float, float* %15, align 4, !dbg !10666 | |
| %154 = fdiv float 1.000000e+00, %153, !dbg !10668 | |
| store float %154, float* %15, align 4, !dbg !10669 | |
| %155 = load float, float* %15, align 4, !dbg !10670 | |
| %156 = load float, float* %10, align 4, !dbg !10670 | |
| %157 = load float, float* %14, align 4, !dbg !10670 | |
| %158 = fmul float %156, %157, !dbg !10670 | |
| %159 = load float, float* %11, align 4, !dbg !10670 | |
| %160 = load float, float* %13, align 4, !dbg !10670 | |
| %161 = fmul float %159, %160, !dbg !10670 | |
| %162 = fsub float %158, %161, !dbg !10670 | |
| %163 = fmul float %155, %162, !dbg !10670 | |
| %164 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10670 | |
| %165 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %164, i32 0, i32 2, !dbg !10670 | |
| %166 = load float*, float** %165, align 8, !dbg !10670 | |
| %167 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10670 | |
| %168 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %167, i32 0, i32 1, !dbg !10670 | |
| %169 = load i32, i32* %168, align 4, !dbg !10670 | |
| %170 = mul i32 0, %169, !dbg !10670 | |
| %171 = add i32 %170, 0, !dbg !10670 | |
| %172 = zext i32 %171 to i64, !dbg !10670 | |
| %173 = getelementptr inbounds float, float* %166, i64 %172, !dbg !10670 | |
| store float %163, float* %173, align 4, !dbg !10670 | |
| %174 = load float, float* %15, align 4, !dbg !10671 | |
| %175 = load float, float* %8, align 4, !dbg !10671 | |
| %176 = load float, float* %13, align 4, !dbg !10671 | |
| %177 = fmul float %175, %176, !dbg !10671 | |
| %178 = load float, float* %7, align 4, !dbg !10671 | |
| %179 = load float, float* %14, align 4, !dbg !10671 | |
| %180 = fmul float %178, %179, !dbg !10671 | |
| %181 = fsub float %177, %180, !dbg !10671 | |
| %182 = fmul float %174, %181, !dbg !10671 | |
| %183 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10671 | |
| %184 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %183, i32 0, i32 2, !dbg !10671 | |
| %185 = load float*, float** %184, align 8, !dbg !10671 | |
| %186 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10671 | |
| %187 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %186, i32 0, i32 1, !dbg !10671 | |
| %188 = load i32, i32* %187, align 4, !dbg !10671 | |
| %189 = mul i32 0, %188, !dbg !10671 | |
| %190 = add i32 %189, 1, !dbg !10671 | |
| %191 = zext i32 %190 to i64, !dbg !10671 | |
| %192 = getelementptr inbounds float, float* %185, i64 %191, !dbg !10671 | |
| store float %182, float* %192, align 4, !dbg !10671 | |
| %193 = load float, float* %15, align 4, !dbg !10672 | |
| %194 = load float, float* %7, align 4, !dbg !10672 | |
| %195 = load float, float* %11, align 4, !dbg !10672 | |
| %196 = fmul float %194, %195, !dbg !10672 | |
| %197 = load float, float* %8, align 4, !dbg !10672 | |
| %198 = load float, float* %10, align 4, !dbg !10672 | |
| %199 = fmul float %197, %198, !dbg !10672 | |
| %200 = fsub float %196, %199, !dbg !10672 | |
| %201 = fmul float %193, %200, !dbg !10672 | |
| %202 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10672 | |
| %203 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %202, i32 0, i32 2, !dbg !10672 | |
| %204 = load float*, float** %203, align 8, !dbg !10672 | |
| %205 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10672 | |
| %206 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %205, i32 0, i32 1, !dbg !10672 | |
| %207 = load i32, i32* %206, align 4, !dbg !10672 | |
| %208 = mul i32 0, %207, !dbg !10672 | |
| %209 = add i32 %208, 2, !dbg !10672 | |
| %210 = zext i32 %209 to i64, !dbg !10672 | |
| %211 = getelementptr inbounds float, float* %204, i64 %210, !dbg !10672 | |
| store float %201, float* %211, align 4, !dbg !10672 | |
| %212 = load float, float* %15, align 4, !dbg !10673 | |
| %213 = load float, float* %11, align 4, !dbg !10673 | |
| %214 = load float, float* %12, align 4, !dbg !10673 | |
| %215 = fmul float %213, %214, !dbg !10673 | |
| %216 = load float, float* %9, align 4, !dbg !10673 | |
| %217 = load float, float* %14, align 4, !dbg !10673 | |
| %218 = fmul float %216, %217, !dbg !10673 | |
| %219 = fsub float %215, %218, !dbg !10673 | |
| %220 = fmul float %212, %219, !dbg !10673 | |
| %221 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10673 | |
| %222 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %221, i32 0, i32 2, !dbg !10673 | |
| %223 = load float*, float** %222, align 8, !dbg !10673 | |
| %224 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10673 | |
| %225 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %224, i32 0, i32 1, !dbg !10673 | |
| %226 = load i32, i32* %225, align 4, !dbg !10673 | |
| %227 = mul i32 1, %226, !dbg !10673 | |
| %228 = add i32 %227, 0, !dbg !10673 | |
| %229 = zext i32 %228 to i64, !dbg !10673 | |
| %230 = getelementptr inbounds float, float* %223, i64 %229, !dbg !10673 | |
| store float %220, float* %230, align 4, !dbg !10673 | |
| %231 = load float, float* %15, align 4, !dbg !10674 | |
| %232 = load float, float* %6, align 4, !dbg !10674 | |
| %233 = load float, float* %14, align 4, !dbg !10674 | |
| %234 = fmul float %232, %233, !dbg !10674 | |
| %235 = load float, float* %8, align 4, !dbg !10674 | |
| %236 = load float, float* %12, align 4, !dbg !10674 | |
| %237 = fmul float %235, %236, !dbg !10674 | |
| %238 = fsub float %234, %237, !dbg !10674 | |
| %239 = fmul float %231, %238, !dbg !10674 | |
| %240 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10674 | |
| %241 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %240, i32 0, i32 2, !dbg !10674 | |
| %242 = load float*, float** %241, align 8, !dbg !10674 | |
| %243 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10674 | |
| %244 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %243, i32 0, i32 1, !dbg !10674 | |
| %245 = load i32, i32* %244, align 4, !dbg !10674 | |
| %246 = mul i32 1, %245, !dbg !10674 | |
| %247 = add i32 %246, 1, !dbg !10674 | |
| %248 = zext i32 %247 to i64, !dbg !10674 | |
| %249 = getelementptr inbounds float, float* %242, i64 %248, !dbg !10674 | |
| store float %239, float* %249, align 4, !dbg !10674 | |
| %250 = load float, float* %15, align 4, !dbg !10675 | |
| %251 = load float, float* %8, align 4, !dbg !10675 | |
| %252 = load float, float* %9, align 4, !dbg !10675 | |
| %253 = fmul float %251, %252, !dbg !10675 | |
| %254 = load float, float* %6, align 4, !dbg !10675 | |
| %255 = load float, float* %11, align 4, !dbg !10675 | |
| %256 = fmul float %254, %255, !dbg !10675 | |
| %257 = fsub float %253, %256, !dbg !10675 | |
| %258 = fmul float %250, %257, !dbg !10675 | |
| %259 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10675 | |
| %260 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %259, i32 0, i32 2, !dbg !10675 | |
| %261 = load float*, float** %260, align 8, !dbg !10675 | |
| %262 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10675 | |
| %263 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %262, i32 0, i32 1, !dbg !10675 | |
| %264 = load i32, i32* %263, align 4, !dbg !10675 | |
| %265 = mul i32 1, %264, !dbg !10675 | |
| %266 = add i32 %265, 2, !dbg !10675 | |
| %267 = zext i32 %266 to i64, !dbg !10675 | |
| %268 = getelementptr inbounds float, float* %261, i64 %267, !dbg !10675 | |
| store float %258, float* %268, align 4, !dbg !10675 | |
| %269 = load float, float* %15, align 4, !dbg !10676 | |
| %270 = load float, float* %9, align 4, !dbg !10676 | |
| %271 = load float, float* %13, align 4, !dbg !10676 | |
| %272 = fmul float %270, %271, !dbg !10676 | |
| %273 = load float, float* %10, align 4, !dbg !10676 | |
| %274 = load float, float* %12, align 4, !dbg !10676 | |
| %275 = fmul float %273, %274, !dbg !10676 | |
| %276 = fsub float %272, %275, !dbg !10676 | |
| %277 = fmul float %269, %276, !dbg !10676 | |
| %278 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10676 | |
| %279 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %278, i32 0, i32 2, !dbg !10676 | |
| %280 = load float*, float** %279, align 8, !dbg !10676 | |
| %281 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10676 | |
| %282 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %281, i32 0, i32 1, !dbg !10676 | |
| %283 = load i32, i32* %282, align 4, !dbg !10676 | |
| %284 = mul i32 2, %283, !dbg !10676 | |
| %285 = add i32 %284, 0, !dbg !10676 | |
| %286 = zext i32 %285 to i64, !dbg !10676 | |
| %287 = getelementptr inbounds float, float* %280, i64 %286, !dbg !10676 | |
| store float %277, float* %287, align 4, !dbg !10676 | |
| %288 = load float, float* %15, align 4, !dbg !10677 | |
| %289 = load float, float* %7, align 4, !dbg !10677 | |
| %290 = load float, float* %12, align 4, !dbg !10677 | |
| %291 = fmul float %289, %290, !dbg !10677 | |
| %292 = load float, float* %6, align 4, !dbg !10677 | |
| %293 = load float, float* %13, align 4, !dbg !10677 | |
| %294 = fmul float %292, %293, !dbg !10677 | |
| %295 = fsub float %291, %294, !dbg !10677 | |
| %296 = fmul float %288, %295, !dbg !10677 | |
| %297 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10677 | |
| %298 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %297, i32 0, i32 2, !dbg !10677 | |
| %299 = load float*, float** %298, align 8, !dbg !10677 | |
| %300 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10677 | |
| %301 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %300, i32 0, i32 1, !dbg !10677 | |
| %302 = load i32, i32* %301, align 4, !dbg !10677 | |
| %303 = mul i32 2, %302, !dbg !10677 | |
| %304 = add i32 %303, 1, !dbg !10677 | |
| %305 = zext i32 %304 to i64, !dbg !10677 | |
| %306 = getelementptr inbounds float, float* %299, i64 %305, !dbg !10677 | |
| store float %296, float* %306, align 4, !dbg !10677 | |
| %307 = load float, float* %15, align 4, !dbg !10678 | |
| %308 = load float, float* %6, align 4, !dbg !10678 | |
| %309 = load float, float* %10, align 4, !dbg !10678 | |
| %310 = fmul float %308, %309, !dbg !10678 | |
| %311 = load float, float* %7, align 4, !dbg !10678 | |
| %312 = load float, float* %9, align 4, !dbg !10678 | |
| %313 = fmul float %311, %312, !dbg !10678 | |
| %314 = fsub float %310, %313, !dbg !10678 | |
| %315 = fmul float %307, %314, !dbg !10678 | |
| %316 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10678 | |
| %317 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %316, i32 0, i32 2, !dbg !10678 | |
| %318 = load float*, float** %317, align 8, !dbg !10678 | |
| %319 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10678 | |
| %320 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %319, i32 0, i32 1, !dbg !10678 | |
| %321 = load i32, i32* %320, align 4, !dbg !10678 | |
| %322 = mul i32 2, %321, !dbg !10678 | |
| %323 = add i32 %322, 2, !dbg !10678 | |
| %324 = zext i32 %323 to i64, !dbg !10678 | |
| %325 = getelementptr inbounds float, float* %318, i64 %324, !dbg !10678 | |
| store float %315, float* %325, align 4, !dbg !10678 | |
| store i64 1, i64* %3, align 8, !dbg !10679 | |
| br label %327, !dbg !10679 | |
| 326: ; preds = %2 | |
| store i64 0, i64* %3, align 8, !dbg !10680 | |
| br label %327, !dbg !10680 | |
| 327: ; preds = %326, %152 | |
| %328 = load i64, i64* %3, align 8, !dbg !10681 | |
| ret i64 %328, !dbg !10681 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @testForIdentityf(%struct.Matrixf_t* %0) #0 !dbg !10682 { | |
| %2 = alloca %struct.Matrixf_t*, align 8 | |
| %3 = alloca i32, align 4 | |
| %4 = alloca i32, align 4 | |
| %5 = alloca float, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %2, metadata !10685, metadata !DIExpression()), !dbg !10686 | |
| call void @llvm.dbg.declare(metadata i32* %3, metadata !10687, metadata !DIExpression()), !dbg !10688 | |
| call void @llvm.dbg.declare(metadata i32* %4, metadata !10689, metadata !DIExpression()), !dbg !10690 | |
| call void @llvm.dbg.declare(metadata float* %5, metadata !10691, metadata !DIExpression()), !dbg !10692 | |
| store float 0.000000e+00, float* %5, align 4, !dbg !10692 | |
| store i32 0, i32* %3, align 4, !dbg !10693 | |
| br label %6, !dbg !10695 | |
| 6: ; preds = %46, %1 | |
| %7 = load i32, i32* %3, align 4, !dbg !10696 | |
| %8 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10698 | |
| %9 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %8, i32 0, i32 0, !dbg !10699 | |
| %10 = load i32, i32* %9, align 8, !dbg !10699 | |
| %11 = icmp ult i32 %7, %10, !dbg !10700 | |
| br i1 %11, label %12, label %49, !dbg !10701 | |
| 12: ; preds = %6 | |
| store i32 0, i32* %4, align 4, !dbg !10702 | |
| br label %13, !dbg !10705 | |
| 13: ; preds = %42, %12 | |
| %14 = load i32, i32* %4, align 4, !dbg !10706 | |
| %15 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10708 | |
| %16 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %15, i32 0, i32 1, !dbg !10709 | |
| %17 = load i32, i32* %16, align 4, !dbg !10709 | |
| %18 = icmp ult i32 %14, %17, !dbg !10710 | |
| br i1 %18, label %19, label %45, !dbg !10711 | |
| 19: ; preds = %13 | |
| %20 = load i32, i32* %3, align 4, !dbg !10712 | |
| %21 = load i32, i32* %4, align 4, !dbg !10715 | |
| %22 = icmp eq i32 %20, %21, !dbg !10716 | |
| br i1 %22, label %23, label %32, !dbg !10717 | |
| 23: ; preds = %19 | |
| %24 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10718 | |
| %25 = load i32, i32* %3, align 4, !dbg !10719 | |
| %26 = load i32, i32* %4, align 4, !dbg !10720 | |
| %27 = call float @matrixGetf(%struct.Matrixf_t* %24, i32 %25, i32 %26), !dbg !10721 | |
| %28 = fsub float 1.000000e+00, %27, !dbg !10722 | |
| %29 = call float @llvm.fabs.f32(float %28), !dbg !10723 | |
| %30 = load float, float* %5, align 4, !dbg !10724 | |
| %31 = fadd float %30, %29, !dbg !10724 | |
| store float %31, float* %5, align 4, !dbg !10724 | |
| br label %41, !dbg !10725 | |
| 32: ; preds = %19 | |
| %33 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10726 | |
| %34 = load i32, i32* %3, align 4, !dbg !10727 | |
| %35 = load i32, i32* %4, align 4, !dbg !10728 | |
| %36 = call float @matrixGetf(%struct.Matrixf_t* %33, i32 %34, i32 %35), !dbg !10729 | |
| %37 = fsub float 0.000000e+00, %36, !dbg !10730 | |
| %38 = call float @llvm.fabs.f32(float %37), !dbg !10731 | |
| %39 = load float, float* %5, align 4, !dbg !10732 | |
| %40 = fadd float %39, %38, !dbg !10732 | |
| store float %40, float* %5, align 4, !dbg !10732 | |
| br label %41 | |
| 41: ; preds = %32, %23 | |
| br label %42, !dbg !10733 | |
| 42: ; preds = %41 | |
| %43 = load i32, i32* %4, align 4, !dbg !10734 | |
| %44 = add i32 %43, 1, !dbg !10734 | |
| store i32 %44, i32* %4, align 4, !dbg !10734 | |
| br label %13, !dbg !10735, !llvm.loop !10736 | |
| 45: ; preds = %13 | |
| br label %46, !dbg !10738 | |
| 46: ; preds = %45 | |
| %47 = load i32, i32* %3, align 4, !dbg !10739 | |
| %48 = add i32 %47, 1, !dbg !10739 | |
| store i32 %48, i32* %3, align 4, !dbg !10739 | |
| br label %6, !dbg !10740, !llvm.loop !10741 | |
| 49: ; preds = %6 | |
| %50 = load float, float* %5, align 4, !dbg !10743 | |
| ret float %50, !dbg !10744 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @testForZeroMatrixf(%struct.Matrixf_t* %0) #0 !dbg !10745 { | |
| %2 = alloca %struct.Matrixf_t*, align 8 | |
| %3 = alloca i32, align 4 | |
| %4 = alloca i32, align 4 | |
| %5 = alloca float, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %2, metadata !10746, metadata !DIExpression()), !dbg !10747 | |
| call void @llvm.dbg.declare(metadata i32* %3, metadata !10748, metadata !DIExpression()), !dbg !10749 | |
| call void @llvm.dbg.declare(metadata i32* %4, metadata !10750, metadata !DIExpression()), !dbg !10751 | |
| call void @llvm.dbg.declare(metadata float* %5, metadata !10752, metadata !DIExpression()), !dbg !10753 | |
| store float 0.000000e+00, float* %5, align 4, !dbg !10753 | |
| store i32 0, i32* %3, align 4, !dbg !10754 | |
| br label %6, !dbg !10756 | |
| 6: ; preds = %32, %1 | |
| %7 = load i32, i32* %3, align 4, !dbg !10757 | |
| %8 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10759 | |
| %9 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %8, i32 0, i32 0, !dbg !10760 | |
| %10 = load i32, i32* %9, align 8, !dbg !10760 | |
| %11 = icmp ult i32 %7, %10, !dbg !10761 | |
| br i1 %11, label %12, label %35, !dbg !10762 | |
| 12: ; preds = %6 | |
| store i32 0, i32* %4, align 4, !dbg !10763 | |
| br label %13, !dbg !10766 | |
| 13: ; preds = %28, %12 | |
| %14 = load i32, i32* %4, align 4, !dbg !10767 | |
| %15 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10769 | |
| %16 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %15, i32 0, i32 1, !dbg !10770 | |
| %17 = load i32, i32* %16, align 4, !dbg !10770 | |
| %18 = icmp ult i32 %14, %17, !dbg !10771 | |
| br i1 %18, label %19, label %31, !dbg !10772 | |
| 19: ; preds = %13 | |
| %20 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !10773 | |
| %21 = load i32, i32* %3, align 4, !dbg !10775 | |
| %22 = load i32, i32* %4, align 4, !dbg !10776 | |
| %23 = call float @matrixGetf(%struct.Matrixf_t* %20, i32 %21, i32 %22), !dbg !10777 | |
| %24 = fsub float 0.000000e+00, %23, !dbg !10778 | |
| %25 = call float @llvm.fabs.f32(float %24), !dbg !10779 | |
| %26 = load float, float* %5, align 4, !dbg !10780 | |
| %27 = fadd float %26, %25, !dbg !10780 | |
| store float %27, float* %5, align 4, !dbg !10780 | |
| br label %28, !dbg !10781 | |
| 28: ; preds = %19 | |
| %29 = load i32, i32* %4, align 4, !dbg !10782 | |
| %30 = add i32 %29, 1, !dbg !10782 | |
| store i32 %30, i32* %4, align 4, !dbg !10782 | |
| br label %13, !dbg !10783, !llvm.loop !10784 | |
| 31: ; preds = %13 | |
| br label %32, !dbg !10786 | |
| 32: ; preds = %31 | |
| %33 = load i32, i32* %3, align 4, !dbg !10787 | |
| %34 = add i32 %33, 1, !dbg !10787 | |
| store i32 %34, i32* %3, align 4, !dbg !10787 | |
| br label %6, !dbg !10788, !llvm.loop !10789 | |
| 35: ; preds = %6 | |
| %36 = load float, float* %5, align 4, !dbg !10791 | |
| ret float %36, !dbg !10792 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixTranspose_ftod(%struct.Matrixf_t* %0, %struct.Matrix_t* %1) #0 !dbg !10793 { | |
| %3 = alloca i64, align 8 | |
| %4 = alloca %struct.Matrixf_t*, align 8 | |
| %5 = alloca %struct.Matrix_t*, align 8 | |
| %6 = alloca i32, align 4 | |
| %7 = alloca i32, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %4, metadata !10796, metadata !DIExpression()), !dbg !10797 | |
| store %struct.Matrix_t* %1, %struct.Matrix_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %5, metadata !10798, metadata !DIExpression()), !dbg !10799 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !10800, metadata !DIExpression()), !dbg !10801 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !10802, metadata !DIExpression()), !dbg !10803 | |
| %8 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10804 | |
| %9 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %8, i32 0, i32 0, !dbg !10806 | |
| %10 = load i32, i32* %9, align 8, !dbg !10806 | |
| %11 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !10807 | |
| %12 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %11, i32 0, i32 1, !dbg !10808 | |
| %13 = load i32, i32* %12, align 4, !dbg !10808 | |
| %14 = icmp eq i32 %10, %13, !dbg !10809 | |
| br i1 %14, label %15, label %72, !dbg !10810 | |
| 15: ; preds = %2 | |
| %16 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10811 | |
| %17 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %16, i32 0, i32 1, !dbg !10812 | |
| %18 = load i32, i32* %17, align 4, !dbg !10812 | |
| %19 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !10813 | |
| %20 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %19, i32 0, i32 0, !dbg !10814 | |
| %21 = load i32, i32* %20, align 8, !dbg !10814 | |
| %22 = icmp eq i32 %18, %21, !dbg !10815 | |
| br i1 %22, label %23, label %72, !dbg !10816 | |
| 23: ; preds = %15 | |
| store i32 0, i32* %6, align 4, !dbg !10817 | |
| br label %24, !dbg !10820 | |
| 24: ; preds = %68, %23 | |
| %25 = load i32, i32* %6, align 4, !dbg !10821 | |
| %26 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10823 | |
| %27 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %26, i32 0, i32 0, !dbg !10824 | |
| %28 = load i32, i32* %27, align 8, !dbg !10824 | |
| %29 = icmp ult i32 %25, %28, !dbg !10825 | |
| br i1 %29, label %30, label %71, !dbg !10826 | |
| 30: ; preds = %24 | |
| store i32 0, i32* %7, align 4, !dbg !10827 | |
| br label %31, !dbg !10830 | |
| 31: ; preds = %64, %30 | |
| %32 = load i32, i32* %7, align 4, !dbg !10831 | |
| %33 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10833 | |
| %34 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %33, i32 0, i32 1, !dbg !10834 | |
| %35 = load i32, i32* %34, align 4, !dbg !10834 | |
| %36 = icmp ult i32 %32, %35, !dbg !10835 | |
| br i1 %36, label %37, label %67, !dbg !10836 | |
| 37: ; preds = %31 | |
| %38 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10837 | |
| %39 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %38, i32 0, i32 2, !dbg !10837 | |
| %40 = load float*, float** %39, align 8, !dbg !10837 | |
| %41 = load i32, i32* %6, align 4, !dbg !10837 | |
| %42 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10837 | |
| %43 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %42, i32 0, i32 1, !dbg !10837 | |
| %44 = load i32, i32* %43, align 4, !dbg !10837 | |
| %45 = mul i32 %41, %44, !dbg !10837 | |
| %46 = load i32, i32* %7, align 4, !dbg !10837 | |
| %47 = add i32 %45, %46, !dbg !10837 | |
| %48 = zext i32 %47 to i64, !dbg !10837 | |
| %49 = getelementptr inbounds float, float* %40, i64 %48, !dbg !10837 | |
| %50 = load float, float* %49, align 4, !dbg !10837 | |
| %51 = fpext float %50 to double, !dbg !10837 | |
| %52 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !10837 | |
| %53 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %52, i32 0, i32 2, !dbg !10837 | |
| %54 = load double*, double** %53, align 8, !dbg !10837 | |
| %55 = load i32, i32* %7, align 4, !dbg !10837 | |
| %56 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !10837 | |
| %57 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %56, i32 0, i32 1, !dbg !10837 | |
| %58 = load i32, i32* %57, align 4, !dbg !10837 | |
| %59 = mul i32 %55, %58, !dbg !10837 | |
| %60 = load i32, i32* %6, align 4, !dbg !10837 | |
| %61 = add i32 %59, %60, !dbg !10837 | |
| %62 = zext i32 %61 to i64, !dbg !10837 | |
| %63 = getelementptr inbounds double, double* %54, i64 %62, !dbg !10837 | |
| store double %51, double* %63, align 8, !dbg !10837 | |
| br label %64, !dbg !10839 | |
| 64: ; preds = %37 | |
| %65 = load i32, i32* %7, align 4, !dbg !10840 | |
| %66 = add i32 %65, 1, !dbg !10840 | |
| store i32 %66, i32* %7, align 4, !dbg !10840 | |
| br label %31, !dbg !10841, !llvm.loop !10842 | |
| 67: ; preds = %31 | |
| br label %68, !dbg !10844 | |
| 68: ; preds = %67 | |
| %69 = load i32, i32* %6, align 4, !dbg !10845 | |
| %70 = add i32 %69, 1, !dbg !10845 | |
| store i32 %70, i32* %6, align 4, !dbg !10845 | |
| br label %24, !dbg !10846, !llvm.loop !10847 | |
| 71: ; preds = %24 | |
| store i64 1, i64* %3, align 8, !dbg !10849 | |
| br label %73, !dbg !10849 | |
| 72: ; preds = %15, %2 | |
| store i64 0, i64* %3, align 8, !dbg !10850 | |
| br label %73, !dbg !10850 | |
| 73: ; preds = %72, %71 | |
| %74 = load i64, i64* %3, align 8, !dbg !10851 | |
| ret i64 %74, !dbg !10851 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixTranspose_dtof(%struct.Matrix_t* %0, %struct.Matrixf_t* %1) #0 !dbg !10852 { | |
| %3 = alloca i64, align 8 | |
| %4 = alloca %struct.Matrix_t*, align 8 | |
| %5 = alloca %struct.Matrixf_t*, align 8 | |
| %6 = alloca i32, align 4 | |
| %7 = alloca i32, align 4 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %4, metadata !10855, metadata !DIExpression()), !dbg !10856 | |
| store %struct.Matrixf_t* %1, %struct.Matrixf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %5, metadata !10857, metadata !DIExpression()), !dbg !10858 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !10859, metadata !DIExpression()), !dbg !10860 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !10861, metadata !DIExpression()), !dbg !10862 | |
| %8 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !10863 | |
| %9 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %8, i32 0, i32 0, !dbg !10865 | |
| %10 = load i32, i32* %9, align 8, !dbg !10865 | |
| %11 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10866 | |
| %12 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %11, i32 0, i32 1, !dbg !10867 | |
| %13 = load i32, i32* %12, align 4, !dbg !10867 | |
| %14 = icmp eq i32 %10, %13, !dbg !10868 | |
| br i1 %14, label %15, label %72, !dbg !10869 | |
| 15: ; preds = %2 | |
| %16 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !10870 | |
| %17 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %16, i32 0, i32 1, !dbg !10871 | |
| %18 = load i32, i32* %17, align 4, !dbg !10871 | |
| %19 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10872 | |
| %20 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %19, i32 0, i32 0, !dbg !10873 | |
| %21 = load i32, i32* %20, align 8, !dbg !10873 | |
| %22 = icmp eq i32 %18, %21, !dbg !10874 | |
| br i1 %22, label %23, label %72, !dbg !10875 | |
| 23: ; preds = %15 | |
| store i32 0, i32* %6, align 4, !dbg !10876 | |
| br label %24, !dbg !10879 | |
| 24: ; preds = %68, %23 | |
| %25 = load i32, i32* %6, align 4, !dbg !10880 | |
| %26 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !10882 | |
| %27 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %26, i32 0, i32 0, !dbg !10883 | |
| %28 = load i32, i32* %27, align 8, !dbg !10883 | |
| %29 = icmp ult i32 %25, %28, !dbg !10884 | |
| br i1 %29, label %30, label %71, !dbg !10885 | |
| 30: ; preds = %24 | |
| store i32 0, i32* %7, align 4, !dbg !10886 | |
| br label %31, !dbg !10889 | |
| 31: ; preds = %64, %30 | |
| %32 = load i32, i32* %7, align 4, !dbg !10890 | |
| %33 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !10892 | |
| %34 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %33, i32 0, i32 1, !dbg !10893 | |
| %35 = load i32, i32* %34, align 4, !dbg !10893 | |
| %36 = icmp ult i32 %32, %35, !dbg !10894 | |
| br i1 %36, label %37, label %67, !dbg !10895 | |
| 37: ; preds = %31 | |
| %38 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !10896 | |
| %39 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %38, i32 0, i32 2, !dbg !10896 | |
| %40 = load double*, double** %39, align 8, !dbg !10896 | |
| %41 = load i32, i32* %6, align 4, !dbg !10896 | |
| %42 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !10896 | |
| %43 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %42, i32 0, i32 1, !dbg !10896 | |
| %44 = load i32, i32* %43, align 4, !dbg !10896 | |
| %45 = mul i32 %41, %44, !dbg !10896 | |
| %46 = load i32, i32* %7, align 4, !dbg !10896 | |
| %47 = add i32 %45, %46, !dbg !10896 | |
| %48 = zext i32 %47 to i64, !dbg !10896 | |
| %49 = getelementptr inbounds double, double* %40, i64 %48, !dbg !10896 | |
| %50 = load double, double* %49, align 8, !dbg !10896 | |
| %51 = fptrunc double %50 to float, !dbg !10896 | |
| %52 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10896 | |
| %53 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %52, i32 0, i32 2, !dbg !10896 | |
| %54 = load float*, float** %53, align 8, !dbg !10896 | |
| %55 = load i32, i32* %7, align 4, !dbg !10896 | |
| %56 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10896 | |
| %57 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %56, i32 0, i32 1, !dbg !10896 | |
| %58 = load i32, i32* %57, align 4, !dbg !10896 | |
| %59 = mul i32 %55, %58, !dbg !10896 | |
| %60 = load i32, i32* %6, align 4, !dbg !10896 | |
| %61 = add i32 %59, %60, !dbg !10896 | |
| %62 = zext i32 %61 to i64, !dbg !10896 | |
| %63 = getelementptr inbounds float, float* %54, i64 %62, !dbg !10896 | |
| store float %51, float* %63, align 4, !dbg !10896 | |
| br label %64, !dbg !10898 | |
| 64: ; preds = %37 | |
| %65 = load i32, i32* %7, align 4, !dbg !10899 | |
| %66 = add i32 %65, 1, !dbg !10899 | |
| store i32 %66, i32* %7, align 4, !dbg !10899 | |
| br label %31, !dbg !10900, !llvm.loop !10901 | |
| 67: ; preds = %31 | |
| br label %68, !dbg !10903 | |
| 68: ; preds = %67 | |
| %69 = load i32, i32* %6, align 4, !dbg !10904 | |
| %70 = add i32 %69, 1, !dbg !10904 | |
| store i32 %70, i32* %6, align 4, !dbg !10904 | |
| br label %24, !dbg !10905, !llvm.loop !10906 | |
| 71: ; preds = %24 | |
| store i64 1, i64* %3, align 8, !dbg !10908 | |
| br label %73, !dbg !10908 | |
| 72: ; preds = %15, %2 | |
| store i64 0, i64* %3, align 8, !dbg !10909 | |
| br label %73, !dbg !10909 | |
| 73: ; preds = %72, %71 | |
| %74 = load i64, i64* %3, align 8, !dbg !10910 | |
| ret i64 %74, !dbg !10910 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixCopy_ftod(%struct.Matrixf_t* %0, %struct.Matrix_t* %1) #0 !dbg !10911 { | |
| %3 = alloca i64, align 8 | |
| %4 = alloca %struct.Matrixf_t*, align 8 | |
| %5 = alloca %struct.Matrix_t*, align 8 | |
| %6 = alloca i32, align 4 | |
| %7 = alloca i32, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %4, metadata !10912, metadata !DIExpression()), !dbg !10913 | |
| store %struct.Matrix_t* %1, %struct.Matrix_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %5, metadata !10914, metadata !DIExpression()), !dbg !10915 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !10916, metadata !DIExpression()), !dbg !10917 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !10918, metadata !DIExpression()), !dbg !10919 | |
| %8 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10920 | |
| %9 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %8, i32 0, i32 0, !dbg !10922 | |
| %10 = load i32, i32* %9, align 8, !dbg !10922 | |
| %11 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !10923 | |
| %12 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %11, i32 0, i32 0, !dbg !10924 | |
| %13 = load i32, i32* %12, align 8, !dbg !10924 | |
| %14 = icmp eq i32 %10, %13, !dbg !10925 | |
| br i1 %14, label %15, label %72, !dbg !10926 | |
| 15: ; preds = %2 | |
| %16 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10927 | |
| %17 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %16, i32 0, i32 1, !dbg !10928 | |
| %18 = load i32, i32* %17, align 4, !dbg !10928 | |
| %19 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !10929 | |
| %20 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %19, i32 0, i32 1, !dbg !10930 | |
| %21 = load i32, i32* %20, align 4, !dbg !10930 | |
| %22 = icmp eq i32 %18, %21, !dbg !10931 | |
| br i1 %22, label %23, label %72, !dbg !10932 | |
| 23: ; preds = %15 | |
| store i32 0, i32* %6, align 4, !dbg !10933 | |
| br label %24, !dbg !10936 | |
| 24: ; preds = %68, %23 | |
| %25 = load i32, i32* %6, align 4, !dbg !10937 | |
| %26 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10939 | |
| %27 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %26, i32 0, i32 0, !dbg !10940 | |
| %28 = load i32, i32* %27, align 8, !dbg !10940 | |
| %29 = icmp ult i32 %25, %28, !dbg !10941 | |
| br i1 %29, label %30, label %71, !dbg !10942 | |
| 30: ; preds = %24 | |
| store i32 0, i32* %7, align 4, !dbg !10943 | |
| br label %31, !dbg !10946 | |
| 31: ; preds = %64, %30 | |
| %32 = load i32, i32* %7, align 4, !dbg !10947 | |
| %33 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10949 | |
| %34 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %33, i32 0, i32 1, !dbg !10950 | |
| %35 = load i32, i32* %34, align 4, !dbg !10950 | |
| %36 = icmp ult i32 %32, %35, !dbg !10951 | |
| br i1 %36, label %37, label %67, !dbg !10952 | |
| 37: ; preds = %31 | |
| %38 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10953 | |
| %39 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %38, i32 0, i32 2, !dbg !10953 | |
| %40 = load float*, float** %39, align 8, !dbg !10953 | |
| %41 = load i32, i32* %6, align 4, !dbg !10953 | |
| %42 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !10953 | |
| %43 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %42, i32 0, i32 1, !dbg !10953 | |
| %44 = load i32, i32* %43, align 4, !dbg !10953 | |
| %45 = mul i32 %41, %44, !dbg !10953 | |
| %46 = load i32, i32* %7, align 4, !dbg !10953 | |
| %47 = add i32 %45, %46, !dbg !10953 | |
| %48 = zext i32 %47 to i64, !dbg !10953 | |
| %49 = getelementptr inbounds float, float* %40, i64 %48, !dbg !10953 | |
| %50 = load float, float* %49, align 4, !dbg !10953 | |
| %51 = fpext float %50 to double, !dbg !10953 | |
| %52 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !10953 | |
| %53 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %52, i32 0, i32 2, !dbg !10953 | |
| %54 = load double*, double** %53, align 8, !dbg !10953 | |
| %55 = load i32, i32* %6, align 4, !dbg !10953 | |
| %56 = load %struct.Matrix_t*, %struct.Matrix_t** %5, align 8, !dbg !10953 | |
| %57 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %56, i32 0, i32 1, !dbg !10953 | |
| %58 = load i32, i32* %57, align 4, !dbg !10953 | |
| %59 = mul i32 %55, %58, !dbg !10953 | |
| %60 = load i32, i32* %7, align 4, !dbg !10953 | |
| %61 = add i32 %59, %60, !dbg !10953 | |
| %62 = zext i32 %61 to i64, !dbg !10953 | |
| %63 = getelementptr inbounds double, double* %54, i64 %62, !dbg !10953 | |
| store double %51, double* %63, align 8, !dbg !10953 | |
| br label %64, !dbg !10955 | |
| 64: ; preds = %37 | |
| %65 = load i32, i32* %7, align 4, !dbg !10956 | |
| %66 = add i32 %65, 1, !dbg !10956 | |
| store i32 %66, i32* %7, align 4, !dbg !10956 | |
| br label %31, !dbg !10957, !llvm.loop !10958 | |
| 67: ; preds = %31 | |
| br label %68, !dbg !10960 | |
| 68: ; preds = %67 | |
| %69 = load i32, i32* %6, align 4, !dbg !10961 | |
| %70 = add i32 %69, 1, !dbg !10961 | |
| store i32 %70, i32* %6, align 4, !dbg !10961 | |
| br label %24, !dbg !10962, !llvm.loop !10963 | |
| 71: ; preds = %24 | |
| store i64 1, i64* %3, align 8, !dbg !10965 | |
| br label %73, !dbg !10965 | |
| 72: ; preds = %15, %2 | |
| store i64 0, i64* %3, align 8, !dbg !10966 | |
| br label %73, !dbg !10966 | |
| 73: ; preds = %72, %71 | |
| %74 = load i64, i64* %3, align 8, !dbg !10967 | |
| ret i64 %74, !dbg !10967 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @matrixCopy_dtof(%struct.Matrix_t* %0, %struct.Matrixf_t* %1) #0 !dbg !10968 { | |
| %3 = alloca i64, align 8 | |
| %4 = alloca %struct.Matrix_t*, align 8 | |
| %5 = alloca %struct.Matrixf_t*, align 8 | |
| %6 = alloca i32, align 4 | |
| %7 = alloca i32, align 4 | |
| store %struct.Matrix_t* %0, %struct.Matrix_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrix_t** %4, metadata !10969, metadata !DIExpression()), !dbg !10970 | |
| store %struct.Matrixf_t* %1, %struct.Matrixf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %5, metadata !10971, metadata !DIExpression()), !dbg !10972 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !10973, metadata !DIExpression()), !dbg !10974 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !10975, metadata !DIExpression()), !dbg !10976 | |
| %8 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !10977 | |
| %9 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %8, i32 0, i32 0, !dbg !10979 | |
| %10 = load i32, i32* %9, align 8, !dbg !10979 | |
| %11 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10980 | |
| %12 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %11, i32 0, i32 0, !dbg !10981 | |
| %13 = load i32, i32* %12, align 8, !dbg !10981 | |
| %14 = icmp eq i32 %10, %13, !dbg !10982 | |
| br i1 %14, label %15, label %72, !dbg !10983 | |
| 15: ; preds = %2 | |
| %16 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !10984 | |
| %17 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %16, i32 0, i32 1, !dbg !10985 | |
| %18 = load i32, i32* %17, align 4, !dbg !10985 | |
| %19 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !10986 | |
| %20 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %19, i32 0, i32 1, !dbg !10987 | |
| %21 = load i32, i32* %20, align 4, !dbg !10987 | |
| %22 = icmp eq i32 %18, %21, !dbg !10988 | |
| br i1 %22, label %23, label %72, !dbg !10989 | |
| 23: ; preds = %15 | |
| store i32 0, i32* %6, align 4, !dbg !10990 | |
| br label %24, !dbg !10993 | |
| 24: ; preds = %68, %23 | |
| %25 = load i32, i32* %6, align 4, !dbg !10994 | |
| %26 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !10996 | |
| %27 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %26, i32 0, i32 0, !dbg !10997 | |
| %28 = load i32, i32* %27, align 8, !dbg !10997 | |
| %29 = icmp ult i32 %25, %28, !dbg !10998 | |
| br i1 %29, label %30, label %71, !dbg !10999 | |
| 30: ; preds = %24 | |
| store i32 0, i32* %7, align 4, !dbg !11000 | |
| br label %31, !dbg !11003 | |
| 31: ; preds = %64, %30 | |
| %32 = load i32, i32* %7, align 4, !dbg !11004 | |
| %33 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !11006 | |
| %34 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %33, i32 0, i32 1, !dbg !11007 | |
| %35 = load i32, i32* %34, align 4, !dbg !11007 | |
| %36 = icmp ult i32 %32, %35, !dbg !11008 | |
| br i1 %36, label %37, label %67, !dbg !11009 | |
| 37: ; preds = %31 | |
| %38 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !11010 | |
| %39 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %38, i32 0, i32 2, !dbg !11010 | |
| %40 = load double*, double** %39, align 8, !dbg !11010 | |
| %41 = load i32, i32* %6, align 4, !dbg !11010 | |
| %42 = load %struct.Matrix_t*, %struct.Matrix_t** %4, align 8, !dbg !11010 | |
| %43 = getelementptr inbounds %struct.Matrix_t, %struct.Matrix_t* %42, i32 0, i32 1, !dbg !11010 | |
| %44 = load i32, i32* %43, align 4, !dbg !11010 | |
| %45 = mul i32 %41, %44, !dbg !11010 | |
| %46 = load i32, i32* %7, align 4, !dbg !11010 | |
| %47 = add i32 %45, %46, !dbg !11010 | |
| %48 = zext i32 %47 to i64, !dbg !11010 | |
| %49 = getelementptr inbounds double, double* %40, i64 %48, !dbg !11010 | |
| %50 = load double, double* %49, align 8, !dbg !11010 | |
| %51 = fptrunc double %50 to float, !dbg !11010 | |
| %52 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !11010 | |
| %53 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %52, i32 0, i32 2, !dbg !11010 | |
| %54 = load float*, float** %53, align 8, !dbg !11010 | |
| %55 = load i32, i32* %6, align 4, !dbg !11010 | |
| %56 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !11010 | |
| %57 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %56, i32 0, i32 1, !dbg !11010 | |
| %58 = load i32, i32* %57, align 4, !dbg !11010 | |
| %59 = mul i32 %55, %58, !dbg !11010 | |
| %60 = load i32, i32* %7, align 4, !dbg !11010 | |
| %61 = add i32 %59, %60, !dbg !11010 | |
| %62 = zext i32 %61 to i64, !dbg !11010 | |
| %63 = getelementptr inbounds float, float* %54, i64 %62, !dbg !11010 | |
| store float %51, float* %63, align 4, !dbg !11010 | |
| br label %64, !dbg !11012 | |
| 64: ; preds = %37 | |
| %65 = load i32, i32* %7, align 4, !dbg !11013 | |
| %66 = add i32 %65, 1, !dbg !11013 | |
| store i32 %66, i32* %7, align 4, !dbg !11013 | |
| br label %31, !dbg !11014, !llvm.loop !11015 | |
| 67: ; preds = %31 | |
| br label %68, !dbg !11017 | |
| 68: ; preds = %67 | |
| %69 = load i32, i32* %6, align 4, !dbg !11018 | |
| %70 = add i32 %69, 1, !dbg !11018 | |
| store i32 %70, i32* %6, align 4, !dbg !11018 | |
| br label %24, !dbg !11019, !llvm.loop !11020 | |
| 71: ; preds = %24 | |
| store i64 1, i64* %3, align 8, !dbg !11022 | |
| br label %73, !dbg !11022 | |
| 72: ; preds = %15, %2 | |
| store i64 0, i64* %3, align 8, !dbg !11023 | |
| br label %73, !dbg !11023 | |
| 73: ; preds = %72, %71 | |
| %74 = load i64, i64* %3, align 8, !dbg !11024 | |
| ret i64 %74, !dbg !11024 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @quadraticDerivativeEvaluationf(float* %0, float %1) #0 !dbg !11025 { | |
| %3 = alloca float*, align 8 | |
| %4 = alloca float, align 4 | |
| store float* %0, float** %3, align 8 | |
| call void @llvm.dbg.declare(metadata float** %3, metadata !11028, metadata !DIExpression()), !dbg !11029 | |
| store float %1, float* %4, align 4 | |
| call void @llvm.dbg.declare(metadata float* %4, metadata !11030, metadata !DIExpression()), !dbg !11031 | |
| %5 = load float*, float** %3, align 8, !dbg !11032 | |
| %6 = getelementptr inbounds float, float* %5, i64 2, !dbg !11032 | |
| %7 = load float, float* %6, align 4, !dbg !11032 | |
| %8 = fmul float 2.000000e+00, %7, !dbg !11033 | |
| %9 = load float, float* %4, align 4, !dbg !11034 | |
| %10 = fmul float %8, %9, !dbg !11035 | |
| %11 = load float*, float** %3, align 8, !dbg !11036 | |
| %12 = getelementptr inbounds float, float* %11, i64 1, !dbg !11036 | |
| %13 = load float, float* %12, align 4, !dbg !11036 | |
| %14 = fadd float %10, %13, !dbg !11037 | |
| ret float %14, !dbg !11038 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @quadraticEvaluationf(float* %0, float %1) #0 !dbg !11039 { | |
| %3 = alloca float*, align 8 | |
| %4 = alloca float, align 4 | |
| store float* %0, float** %3, align 8 | |
| call void @llvm.dbg.declare(metadata float** %3, metadata !11040, metadata !DIExpression()), !dbg !11041 | |
| store float %1, float* %4, align 4 | |
| call void @llvm.dbg.declare(metadata float* %4, metadata !11042, metadata !DIExpression()), !dbg !11043 | |
| %5 = load float, float* %4, align 4, !dbg !11044 | |
| %6 = load float, float* %4, align 4, !dbg !11045 | |
| %7 = fmul float %5, %6, !dbg !11046 | |
| %8 = load float*, float** %3, align 8, !dbg !11047 | |
| %9 = getelementptr inbounds float, float* %8, i64 2, !dbg !11047 | |
| %10 = load float, float* %9, align 4, !dbg !11047 | |
| %11 = fmul float %7, %10, !dbg !11048 | |
| %12 = load float, float* %4, align 4, !dbg !11049 | |
| %13 = load float*, float** %3, align 8, !dbg !11050 | |
| %14 = getelementptr inbounds float, float* %13, i64 1, !dbg !11050 | |
| %15 = load float, float* %14, align 4, !dbg !11050 | |
| %16 = fmul float %12, %15, !dbg !11051 | |
| %17 = fadd float %11, %16, !dbg !11052 | |
| %18 = load float*, float** %3, align 8, !dbg !11053 | |
| %19 = getelementptr inbounds float, float* %18, i64 0, !dbg !11053 | |
| %20 = load float, float* %19, align 4, !dbg !11053 | |
| %21 = fadd float %17, %20, !dbg !11054 | |
| ret float %21, !dbg !11055 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @quadraticRegressionf(float* %0, float* %1, i32 %2, float* %3) #0 !dbg !11056 { | |
| %5 = alloca i64, align 8 | |
| %6 = alloca float*, align 8 | |
| %7 = alloca float*, align 8 | |
| %8 = alloca i32, align 4 | |
| %9 = alloca float*, align 8 | |
| %10 = alloca i32, align 4 | |
| %11 = alloca float, align 4 | |
| %12 = alloca float, align 4 | |
| %13 = alloca float, align 4 | |
| %14 = alloca float, align 4 | |
| %15 = alloca float, align 4 | |
| %16 = alloca float, align 4 | |
| %17 = alloca float, align 4 | |
| %18 = alloca [9 x float], align 16 | |
| %19 = alloca %struct.Matrixf_t, align 8 | |
| %20 = alloca [9 x float], align 16 | |
| %21 = alloca %struct.Matrixf_t, align 8 | |
| %22 = alloca [3 x float], align 4 | |
| %23 = alloca %struct.Matrixf_t, align 8 | |
| %24 = alloca [3 x float], align 4 | |
| %25 = alloca %struct.Matrixf_t, align 8 | |
| %26 = alloca float, align 4 | |
| %27 = alloca float, align 4 | |
| %28 = alloca float, align 4 | |
| store float* %0, float** %6, align 8 | |
| call void @llvm.dbg.declare(metadata float** %6, metadata !11059, metadata !DIExpression()), !dbg !11060 | |
| store float* %1, float** %7, align 8 | |
| call void @llvm.dbg.declare(metadata float** %7, metadata !11061, metadata !DIExpression()), !dbg !11062 | |
| store i32 %2, i32* %8, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %8, metadata !11063, metadata !DIExpression()), !dbg !11064 | |
| store float* %3, float** %9, align 8 | |
| call void @llvm.dbg.declare(metadata float** %9, metadata !11065, metadata !DIExpression()), !dbg !11066 | |
| call void @llvm.dbg.declare(metadata i32* %10, metadata !11067, metadata !DIExpression()), !dbg !11068 | |
| call void @llvm.dbg.declare(metadata float* %11, metadata !11069, metadata !DIExpression()), !dbg !11070 | |
| store float 0.000000e+00, float* %11, align 4, !dbg !11070 | |
| call void @llvm.dbg.declare(metadata float* %12, metadata !11071, metadata !DIExpression()), !dbg !11072 | |
| store float 0.000000e+00, float* %12, align 4, !dbg !11072 | |
| call void @llvm.dbg.declare(metadata float* %13, metadata !11073, metadata !DIExpression()), !dbg !11074 | |
| store float 0.000000e+00, float* %13, align 4, !dbg !11074 | |
| call void @llvm.dbg.declare(metadata float* %14, metadata !11075, metadata !DIExpression()), !dbg !11076 | |
| store float 0.000000e+00, float* %14, align 4, !dbg !11076 | |
| call void @llvm.dbg.declare(metadata float* %15, metadata !11077, metadata !DIExpression()), !dbg !11078 | |
| store float 0.000000e+00, float* %15, align 4, !dbg !11078 | |
| call void @llvm.dbg.declare(metadata float* %16, metadata !11079, metadata !DIExpression()), !dbg !11080 | |
| store float 0.000000e+00, float* %16, align 4, !dbg !11080 | |
| call void @llvm.dbg.declare(metadata float* %17, metadata !11081, metadata !DIExpression()), !dbg !11082 | |
| store float 0.000000e+00, float* %17, align 4, !dbg !11082 | |
| call void @llvm.dbg.declare(metadata [9 x float]* %18, metadata !11083, metadata !DIExpression()), !dbg !11084 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t* %19, metadata !11085, metadata !DIExpression()), !dbg !11084 | |
| %29 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %19, i32 0, i32 0, !dbg !11084 | |
| store i32 3, i32* %29, align 8, !dbg !11084 | |
| %30 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %19, i32 0, i32 1, !dbg !11084 | |
| store i32 3, i32* %30, align 4, !dbg !11084 | |
| %31 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %19, i32 0, i32 2, !dbg !11084 | |
| %32 = getelementptr inbounds [9 x float], [9 x float]* %18, i64 0, i64 0, !dbg !11084 | |
| store float* %32, float** %31, align 8, !dbg !11084 | |
| call void @llvm.dbg.declare(metadata [9 x float]* %20, metadata !11086, metadata !DIExpression()), !dbg !11087 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t* %21, metadata !11088, metadata !DIExpression()), !dbg !11087 | |
| %33 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %21, i32 0, i32 0, !dbg !11087 | |
| store i32 3, i32* %33, align 8, !dbg !11087 | |
| %34 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %21, i32 0, i32 1, !dbg !11087 | |
| store i32 3, i32* %34, align 4, !dbg !11087 | |
| %35 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %21, i32 0, i32 2, !dbg !11087 | |
| %36 = getelementptr inbounds [9 x float], [9 x float]* %20, i64 0, i64 0, !dbg !11087 | |
| store float* %36, float** %35, align 8, !dbg !11087 | |
| call void @llvm.dbg.declare(metadata [3 x float]* %22, metadata !11089, metadata !DIExpression()), !dbg !11090 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t* %23, metadata !11091, metadata !DIExpression()), !dbg !11090 | |
| %37 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %23, i32 0, i32 0, !dbg !11090 | |
| store i32 3, i32* %37, align 8, !dbg !11090 | |
| %38 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %23, i32 0, i32 1, !dbg !11090 | |
| store i32 1, i32* %38, align 4, !dbg !11090 | |
| %39 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %23, i32 0, i32 2, !dbg !11090 | |
| %40 = getelementptr inbounds [3 x float], [3 x float]* %22, i64 0, i64 0, !dbg !11090 | |
| store float* %40, float** %39, align 8, !dbg !11090 | |
| call void @llvm.dbg.declare(metadata [3 x float]* %24, metadata !11092, metadata !DIExpression()), !dbg !11093 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t* %25, metadata !11094, metadata !DIExpression()), !dbg !11093 | |
| %41 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %25, i32 0, i32 0, !dbg !11093 | |
| store i32 3, i32* %41, align 8, !dbg !11093 | |
| %42 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %25, i32 0, i32 1, !dbg !11093 | |
| store i32 1, i32* %42, align 4, !dbg !11093 | |
| %43 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %25, i32 0, i32 2, !dbg !11093 | |
| %44 = getelementptr inbounds [3 x float], [3 x float]* %24, i64 0, i64 0, !dbg !11093 | |
| store float* %44, float** %43, align 8, !dbg !11093 | |
| %45 = load i32, i32* %8, align 4, !dbg !11095 | |
| %46 = icmp slt i32 %45, 3, !dbg !11097 | |
| br i1 %46, label %47, label %48, !dbg !11098 | |
| 47: ; preds = %4 | |
| store i64 0, i64* %5, align 8, !dbg !11099 | |
| br label %127, !dbg !11099 | |
| 48: ; preds = %4 | |
| store i32 0, i32* %10, align 4, !dbg !11100 | |
| br label %49, !dbg !11102 | |
| 49: ; preds = %96, %48 | |
| %50 = load i32, i32* %10, align 4, !dbg !11103 | |
| %51 = load i32, i32* %8, align 4, !dbg !11105 | |
| %52 = icmp slt i32 %50, %51, !dbg !11106 | |
| br i1 %52, label %53, label %99, !dbg !11107 | |
| 53: ; preds = %49 | |
| call void @llvm.dbg.declare(metadata float* %26, metadata !11108, metadata !DIExpression()), !dbg !11110 | |
| %54 = load float*, float** %6, align 8, !dbg !11111 | |
| %55 = load i32, i32* %10, align 4, !dbg !11112 | |
| %56 = sext i32 %55 to i64, !dbg !11111 | |
| %57 = getelementptr inbounds float, float* %54, i64 %56, !dbg !11111 | |
| %58 = load float, float* %57, align 4, !dbg !11111 | |
| store float %58, float* %26, align 4, !dbg !11110 | |
| call void @llvm.dbg.declare(metadata float* %27, metadata !11113, metadata !DIExpression()), !dbg !11114 | |
| %59 = load float*, float** %7, align 8, !dbg !11115 | |
| %60 = load i32, i32* %10, align 4, !dbg !11116 | |
| %61 = sext i32 %60 to i64, !dbg !11115 | |
| %62 = getelementptr inbounds float, float* %59, i64 %61, !dbg !11115 | |
| %63 = load float, float* %62, align 4, !dbg !11115 | |
| store float %63, float* %27, align 4, !dbg !11114 | |
| call void @llvm.dbg.declare(metadata float* %28, metadata !11117, metadata !DIExpression()), !dbg !11118 | |
| %64 = load float, float* %26, align 4, !dbg !11119 | |
| %65 = load float, float* %26, align 4, !dbg !11120 | |
| %66 = fmul float %64, %65, !dbg !11121 | |
| store float %66, float* %28, align 4, !dbg !11118 | |
| %67 = load float, float* %26, align 4, !dbg !11122 | |
| %68 = load float, float* %14, align 4, !dbg !11123 | |
| %69 = fadd float %68, %67, !dbg !11123 | |
| store float %69, float* %14, align 4, !dbg !11123 | |
| %70 = load float, float* %27, align 4, !dbg !11124 | |
| %71 = load float, float* %17, align 4, !dbg !11125 | |
| %72 = fadd float %71, %70, !dbg !11125 | |
| store float %72, float* %17, align 4, !dbg !11125 | |
| %73 = load float, float* %28, align 4, !dbg !11126 | |
| %74 = load float, float* %13, align 4, !dbg !11127 | |
| %75 = fadd float %74, %73, !dbg !11127 | |
| store float %75, float* %13, align 4, !dbg !11127 | |
| %76 = load float, float* %28, align 4, !dbg !11128 | |
| %77 = load float, float* %26, align 4, !dbg !11129 | |
| %78 = fmul float %76, %77, !dbg !11130 | |
| %79 = load float, float* %12, align 4, !dbg !11131 | |
| %80 = fadd float %79, %78, !dbg !11131 | |
| store float %80, float* %12, align 4, !dbg !11131 | |
| %81 = load float, float* %28, align 4, !dbg !11132 | |
| %82 = load float, float* %28, align 4, !dbg !11133 | |
| %83 = fmul float %81, %82, !dbg !11134 | |
| %84 = load float, float* %11, align 4, !dbg !11135 | |
| %85 = fadd float %84, %83, !dbg !11135 | |
| store float %85, float* %11, align 4, !dbg !11135 | |
| %86 = load float, float* %26, align 4, !dbg !11136 | |
| %87 = load float, float* %27, align 4, !dbg !11137 | |
| %88 = fmul float %86, %87, !dbg !11138 | |
| %89 = load float, float* %16, align 4, !dbg !11139 | |
| %90 = fadd float %89, %88, !dbg !11139 | |
| store float %90, float* %16, align 4, !dbg !11139 | |
| %91 = load float, float* %28, align 4, !dbg !11140 | |
| %92 = load float, float* %27, align 4, !dbg !11141 | |
| %93 = fmul float %91, %92, !dbg !11142 | |
| %94 = load float, float* %15, align 4, !dbg !11143 | |
| %95 = fadd float %94, %93, !dbg !11143 | |
| store float %95, float* %15, align 4, !dbg !11143 | |
| br label %96, !dbg !11144 | |
| 96: ; preds = %53 | |
| %97 = load i32, i32* %10, align 4, !dbg !11145 | |
| %98 = add nsw i32 %97, 1, !dbg !11145 | |
| store i32 %98, i32* %10, align 4, !dbg !11145 | |
| br label %49, !dbg !11146, !llvm.loop !11147 | |
| 99: ; preds = %49 | |
| %100 = load float, float* %11, align 4, !dbg !11149 | |
| call void @matrixSetf(%struct.Matrixf_t* %19, i32 0, i32 0, float %100), !dbg !11150 | |
| %101 = load float, float* %12, align 4, !dbg !11151 | |
| call void @matrixSetf(%struct.Matrixf_t* %19, i32 0, i32 1, float %101), !dbg !11152 | |
| %102 = load float, float* %13, align 4, !dbg !11153 | |
| call void @matrixSetf(%struct.Matrixf_t* %19, i32 0, i32 2, float %102), !dbg !11154 | |
| %103 = load float, float* %12, align 4, !dbg !11155 | |
| call void @matrixSetf(%struct.Matrixf_t* %19, i32 1, i32 0, float %103), !dbg !11156 | |
| %104 = load float, float* %13, align 4, !dbg !11157 | |
| call void @matrixSetf(%struct.Matrixf_t* %19, i32 1, i32 1, float %104), !dbg !11158 | |
| %105 = load float, float* %14, align 4, !dbg !11159 | |
| call void @matrixSetf(%struct.Matrixf_t* %19, i32 1, i32 2, float %105), !dbg !11160 | |
| %106 = load float, float* %13, align 4, !dbg !11161 | |
| call void @matrixSetf(%struct.Matrixf_t* %19, i32 2, i32 0, float %106), !dbg !11162 | |
| %107 = load float, float* %14, align 4, !dbg !11163 | |
| call void @matrixSetf(%struct.Matrixf_t* %19, i32 2, i32 1, float %107), !dbg !11164 | |
| %108 = load i32, i32* %8, align 4, !dbg !11165 | |
| %109 = sitofp i32 %108 to float, !dbg !11166 | |
| call void @matrixSetf(%struct.Matrixf_t* %19, i32 2, i32 2, float %109), !dbg !11167 | |
| %110 = call i64 @matrixInversef(%struct.Matrixf_t* %19, %struct.Matrixf_t* %21), !dbg !11168 | |
| %111 = icmp ne i64 %110, 0, !dbg !11168 | |
| br i1 %111, label %113, label %112, !dbg !11170 | |
| 112: ; preds = %99 | |
| store i64 0, i64* %5, align 8, !dbg !11171 | |
| br label %127, !dbg !11171 | |
| 113: ; preds = %99 | |
| %114 = load float, float* %15, align 4, !dbg !11172 | |
| call void @matrixSetf(%struct.Matrixf_t* %23, i32 0, i32 0, float %114), !dbg !11173 | |
| %115 = load float, float* %16, align 4, !dbg !11174 | |
| call void @matrixSetf(%struct.Matrixf_t* %23, i32 0, i32 1, float %115), !dbg !11175 | |
| %116 = load float, float* %17, align 4, !dbg !11176 | |
| call void @matrixSetf(%struct.Matrixf_t* %23, i32 0, i32 2, float %116), !dbg !11177 | |
| %117 = call i64 @matrixMultiplyf(%struct.Matrixf_t* %21, %struct.Matrixf_t* %23, %struct.Matrixf_t* %25), !dbg !11178 | |
| %118 = call float @matrixGetf(%struct.Matrixf_t* %25, i32 0, i32 0), !dbg !11179 | |
| %119 = load float*, float** %9, align 8, !dbg !11180 | |
| %120 = getelementptr inbounds float, float* %119, i64 2, !dbg !11180 | |
| store float %118, float* %120, align 4, !dbg !11181 | |
| %121 = call float @matrixGetf(%struct.Matrixf_t* %25, i32 0, i32 1), !dbg !11182 | |
| %122 = load float*, float** %9, align 8, !dbg !11183 | |
| %123 = getelementptr inbounds float, float* %122, i64 1, !dbg !11183 | |
| store float %121, float* %123, align 4, !dbg !11184 | |
| %124 = call float @matrixGetf(%struct.Matrixf_t* %25, i32 0, i32 2), !dbg !11185 | |
| %125 = load float*, float** %9, align 8, !dbg !11186 | |
| %126 = getelementptr inbounds float, float* %125, i64 0, !dbg !11186 | |
| store float %124, float* %126, align 4, !dbg !11187 | |
| store i64 1, i64* %5, align 8, !dbg !11188 | |
| br label %127, !dbg !11188 | |
| 127: ; preds = %113, %112, %47 | |
| %128 = load i64, i64* %5, align 8, !dbg !11189 | |
| ret i64 %128, !dbg !11189 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @gravity(double %0) #0 !dbg !11190 { | |
| %2 = alloca double, align 8 | |
| store double %0, double* %2, align 8 | |
| call void @llvm.dbg.declare(metadata double* %2, metadata !11192, metadata !DIExpression()), !dbg !11193 | |
| %3 = load double, double* %2, align 8, !dbg !11194 | |
| %4 = call double @sin(double %3) #7, !dbg !11195 | |
| %5 = call double @gravityFromSinLat(double %4), !dbg !11196 | |
| ret double %5, !dbg !11197 | |
| } | |
| ; Function Attrs: nounwind | |
| declare dso_local double @sin(double) #5 | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @gravityFromSinLat(double %0) #0 !dbg !11198 { | |
| %2 = alloca double, align 8 | |
| %3 = alloca double, align 8 | |
| store double %0, double* %2, align 8 | |
| call void @llvm.dbg.declare(metadata double* %2, metadata !11199, metadata !DIExpression()), !dbg !11200 | |
| call void @llvm.dbg.declare(metadata double* %3, metadata !11201, metadata !DIExpression()), !dbg !11202 | |
| %4 = load double, double* %2, align 8, !dbg !11203 | |
| %5 = load double, double* %2, align 8, !dbg !11204 | |
| %6 = fmul double %4, %5, !dbg !11205 | |
| store double %6, double* %3, align 8, !dbg !11202 | |
| %7 = load double, double* %3, align 8, !dbg !11206 | |
| %8 = fmul double 0x3F5FA6C5A19E24B8, %7, !dbg !11207 | |
| %9 = fadd double 1.000000e+00, %8, !dbg !11208 | |
| %10 = fmul double 0x40238F86FD96B669, %9, !dbg !11209 | |
| %11 = load double, double* %3, align 8, !dbg !11210 | |
| %12 = fmul double 0x3F7B6B90F1FE9500, %11, !dbg !11211 | |
| %13 = fsub double 1.000000e+00, %12, !dbg !11212 | |
| %14 = call double @sqrt(double %13) #7, !dbg !11213 | |
| %15 = fdiv double %10, %14, !dbg !11214 | |
| ret double %15, !dbg !11215 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @radiusOfEWCurv(double %0) #0 !dbg !11216 { | |
| %2 = alloca double, align 8 | |
| store double %0, double* %2, align 8 | |
| call void @llvm.dbg.declare(metadata double* %2, metadata !11217, metadata !DIExpression()), !dbg !11218 | |
| %3 = load double, double* %2, align 8, !dbg !11219 | |
| %4 = call double @sin(double %3) #7, !dbg !11220 | |
| %5 = call double @radiusOfEWCurvFromSinLat(double %4), !dbg !11221 | |
| ret double %5, !dbg !11222 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local double @radiusOfEWCurvFromSinLat(double %0) #0 !dbg !11223 { | |
| %2 = alloca double, align 8 | |
| store double %0, double* %2, align 8 | |
| call void @llvm.dbg.declare(metadata double* %2, metadata !11224, metadata !DIExpression()), !dbg !11225 | |
| %3 = load double, double* %2, align 8, !dbg !11226 | |
| %4 = fmul double 0x3F7B6B90F1FE9500, %3, !dbg !11227 | |
| %5 = load double, double* %2, align 8, !dbg !11228 | |
| %6 = fmul double %4, %5, !dbg !11229 | |
| %7 = fsub double 1.000000e+00, %6, !dbg !11230 | |
| %8 = call double @sqrt(double %7) #7, !dbg !11231 | |
| %9 = fdiv double 0x415854A640000000, %8, !dbg !11232 | |
| ret double %9, !dbg !11233 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.llaTrig_t* @llaToTrig(double* %0, %struct.llaTrig_t* %1) #0 !dbg !11234 { | |
| %3 = alloca double*, align 8 | |
| %4 = alloca %struct.llaTrig_t*, align 8 | |
| store double* %0, double** %3, align 8 | |
| call void @llvm.dbg.declare(metadata double** %3, metadata !11248, metadata !DIExpression()), !dbg !11249 | |
| store %struct.llaTrig_t* %1, %struct.llaTrig_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.llaTrig_t** %4, metadata !11250, metadata !DIExpression()), !dbg !11251 | |
| %5 = load double*, double** %3, align 8, !dbg !11252 | |
| %6 = getelementptr inbounds double, double* %5, i64 0, !dbg !11252 | |
| %7 = load double, double* %6, align 8, !dbg !11252 | |
| %8 = call double @cos(double %7) #7, !dbg !11253 | |
| %9 = load %struct.llaTrig_t*, %struct.llaTrig_t** %4, align 8, !dbg !11254 | |
| %10 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %9, i32 0, i32 2, !dbg !11255 | |
| store double %8, double* %10, align 8, !dbg !11256 | |
| %11 = load double*, double** %3, align 8, !dbg !11257 | |
| %12 = getelementptr inbounds double, double* %11, i64 1, !dbg !11257 | |
| %13 = load double, double* %12, align 8, !dbg !11257 | |
| %14 = call double @cos(double %13) #7, !dbg !11258 | |
| %15 = load %struct.llaTrig_t*, %struct.llaTrig_t** %4, align 8, !dbg !11259 | |
| %16 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %15, i32 0, i32 3, !dbg !11260 | |
| store double %14, double* %16, align 8, !dbg !11261 | |
| %17 = load double*, double** %3, align 8, !dbg !11262 | |
| %18 = getelementptr inbounds double, double* %17, i64 0, !dbg !11262 | |
| %19 = load double, double* %18, align 8, !dbg !11262 | |
| %20 = call double @sin(double %19) #7, !dbg !11263 | |
| %21 = load %struct.llaTrig_t*, %struct.llaTrig_t** %4, align 8, !dbg !11264 | |
| %22 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %21, i32 0, i32 0, !dbg !11265 | |
| store double %20, double* %22, align 8, !dbg !11266 | |
| %23 = load double*, double** %3, align 8, !dbg !11267 | |
| %24 = getelementptr inbounds double, double* %23, i64 1, !dbg !11267 | |
| %25 = load double, double* %24, align 8, !dbg !11267 | |
| %26 = call double @sin(double %25) #7, !dbg !11268 | |
| %27 = load %struct.llaTrig_t*, %struct.llaTrig_t** %4, align 8, !dbg !11269 | |
| %28 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %27, i32 0, i32 1, !dbg !11270 | |
| store double %26, double* %28, align 8, !dbg !11271 | |
| %29 = load %struct.llaTrig_t*, %struct.llaTrig_t** %4, align 8, !dbg !11272 | |
| ret %struct.llaTrig_t* %29, !dbg !11273 | |
| } | |
| ; Function Attrs: nounwind | |
| declare dso_local double @cos(double) #5 | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @llaToECEF(double* %0, double* %1) #0 !dbg !11274 { | |
| %3 = alloca double*, align 8 | |
| %4 = alloca double*, align 8 | |
| %5 = alloca %struct.llaTrig_t, align 8 | |
| store double* %0, double** %3, align 8 | |
| call void @llvm.dbg.declare(metadata double** %3, metadata !11277, metadata !DIExpression()), !dbg !11278 | |
| store double* %1, double** %4, align 8 | |
| call void @llvm.dbg.declare(metadata double** %4, metadata !11279, metadata !DIExpression()), !dbg !11280 | |
| call void @llvm.dbg.declare(metadata %struct.llaTrig_t* %5, metadata !11281, metadata !DIExpression()), !dbg !11282 | |
| %6 = load double*, double** %3, align 8, !dbg !11283 | |
| %7 = load double*, double** %4, align 8, !dbg !11284 | |
| call void @llaToECEFandTrig(double* %6, double* %7, %struct.llaTrig_t* %5), !dbg !11285 | |
| ret void, !dbg !11286 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @llaToECEFandTrig(double* %0, double* %1, %struct.llaTrig_t* %2) #0 !dbg !11287 { | |
| %4 = alloca double*, align 8 | |
| %5 = alloca double*, align 8 | |
| %6 = alloca %struct.llaTrig_t*, align 8 | |
| store double* %0, double** %4, align 8 | |
| call void @llvm.dbg.declare(metadata double** %4, metadata !11290, metadata !DIExpression()), !dbg !11291 | |
| store double* %1, double** %5, align 8 | |
| call void @llvm.dbg.declare(metadata double** %5, metadata !11292, metadata !DIExpression()), !dbg !11293 | |
| store %struct.llaTrig_t* %2, %struct.llaTrig_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.llaTrig_t** %6, metadata !11294, metadata !DIExpression()), !dbg !11295 | |
| %7 = load double*, double** %4, align 8, !dbg !11296 | |
| %8 = getelementptr inbounds double, double* %7, i64 2, !dbg !11296 | |
| %9 = load double, double* %8, align 8, !dbg !11296 | |
| %10 = load double*, double** %5, align 8, !dbg !11297 | |
| %11 = load double*, double** %4, align 8, !dbg !11298 | |
| %12 = load %struct.llaTrig_t*, %struct.llaTrig_t** %6, align 8, !dbg !11299 | |
| %13 = call %struct.llaTrig_t* @llaToTrig(double* %11, %struct.llaTrig_t* %12), !dbg !11300 | |
| call void @llaTrigToECEF(double %9, double* %10, %struct.llaTrig_t* %13), !dbg !11301 | |
| ret void, !dbg !11302 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @llaTrigToECEF(double %0, double* %1, %struct.llaTrig_t* %2) #0 !dbg !11303 { | |
| %4 = alloca double, align 8 | |
| %5 = alloca double*, align 8 | |
| %6 = alloca %struct.llaTrig_t*, align 8 | |
| %7 = alloca double, align 8 | |
| store double %0, double* %4, align 8 | |
| call void @llvm.dbg.declare(metadata double* %4, metadata !11306, metadata !DIExpression()), !dbg !11307 | |
| store double* %1, double** %5, align 8 | |
| call void @llvm.dbg.declare(metadata double** %5, metadata !11308, metadata !DIExpression()), !dbg !11309 | |
| store %struct.llaTrig_t* %2, %struct.llaTrig_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.llaTrig_t** %6, metadata !11310, metadata !DIExpression()), !dbg !11311 | |
| call void @llvm.dbg.declare(metadata double* %7, metadata !11312, metadata !DIExpression()), !dbg !11313 | |
| %8 = load %struct.llaTrig_t*, %struct.llaTrig_t** %6, align 8, !dbg !11314 | |
| %9 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %8, i32 0, i32 0, !dbg !11315 | |
| %10 = load double, double* %9, align 8, !dbg !11315 | |
| %11 = call double @radiusOfEWCurvFromSinLat(double %10), !dbg !11316 | |
| store double %11, double* %7, align 8, !dbg !11313 | |
| %12 = load double, double* %7, align 8, !dbg !11317 | |
| %13 = load double, double* %4, align 8, !dbg !11318 | |
| %14 = fadd double %12, %13, !dbg !11319 | |
| %15 = load %struct.llaTrig_t*, %struct.llaTrig_t** %6, align 8, !dbg !11320 | |
| %16 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %15, i32 0, i32 2, !dbg !11321 | |
| %17 = load double, double* %16, align 8, !dbg !11321 | |
| %18 = fmul double %14, %17, !dbg !11322 | |
| %19 = load %struct.llaTrig_t*, %struct.llaTrig_t** %6, align 8, !dbg !11323 | |
| %20 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %19, i32 0, i32 3, !dbg !11324 | |
| %21 = load double, double* %20, align 8, !dbg !11324 | |
| %22 = fmul double %18, %21, !dbg !11325 | |
| %23 = load double*, double** %5, align 8, !dbg !11326 | |
| %24 = getelementptr inbounds double, double* %23, i64 0, !dbg !11326 | |
| store double %22, double* %24, align 8, !dbg !11327 | |
| %25 = load double, double* %7, align 8, !dbg !11328 | |
| %26 = load double, double* %4, align 8, !dbg !11329 | |
| %27 = fadd double %25, %26, !dbg !11330 | |
| %28 = load %struct.llaTrig_t*, %struct.llaTrig_t** %6, align 8, !dbg !11331 | |
| %29 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %28, i32 0, i32 2, !dbg !11332 | |
| %30 = load double, double* %29, align 8, !dbg !11332 | |
| %31 = fmul double %27, %30, !dbg !11333 | |
| %32 = load %struct.llaTrig_t*, %struct.llaTrig_t** %6, align 8, !dbg !11334 | |
| %33 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %32, i32 0, i32 1, !dbg !11335 | |
| %34 = load double, double* %33, align 8, !dbg !11335 | |
| %35 = fmul double %31, %34, !dbg !11336 | |
| %36 = load double*, double** %5, align 8, !dbg !11337 | |
| %37 = getelementptr inbounds double, double* %36, i64 1, !dbg !11337 | |
| store double %35, double* %37, align 8, !dbg !11338 | |
| %38 = load double, double* %7, align 8, !dbg !11339 | |
| %39 = fmul double %38, 0x3FEFC928DE1C02D6, !dbg !11340 | |
| %40 = load double, double* %4, align 8, !dbg !11341 | |
| %41 = fadd double %39, %40, !dbg !11342 | |
| %42 = load %struct.llaTrig_t*, %struct.llaTrig_t** %6, align 8, !dbg !11343 | |
| %43 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %42, i32 0, i32 0, !dbg !11344 | |
| %44 = load double, double* %43, align 8, !dbg !11344 | |
| %45 = fmul double %41, %44, !dbg !11345 | |
| %46 = load double*, double** %5, align 8, !dbg !11346 | |
| %47 = getelementptr inbounds double, double* %46, i64 2, !dbg !11346 | |
| store double %45, double* %47, align 8, !dbg !11347 | |
| ret void, !dbg !11348 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @ecefToLLA(double* %0, double* %1) #0 !dbg !11349 { | |
| %3 = alloca double*, align 8 | |
| %4 = alloca double*, align 8 | |
| %5 = alloca %struct.llaTrig_t, align 8 | |
| store double* %0, double** %3, align 8 | |
| call void @llvm.dbg.declare(metadata double** %3, metadata !11350, metadata !DIExpression()), !dbg !11351 | |
| store double* %1, double** %4, align 8 | |
| call void @llvm.dbg.declare(metadata double** %4, metadata !11352, metadata !DIExpression()), !dbg !11353 | |
| call void @llvm.dbg.declare(metadata %struct.llaTrig_t* %5, metadata !11354, metadata !DIExpression()), !dbg !11355 | |
| %6 = load double*, double** %3, align 8, !dbg !11356 | |
| %7 = load double*, double** %4, align 8, !dbg !11357 | |
| call void @ecefToLLAandTrig(double* %6, double* %7, %struct.llaTrig_t* %5), !dbg !11358 | |
| ret void, !dbg !11359 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @ecefToLLAandTrig(double* %0, double* %1, %struct.llaTrig_t* %2) #0 !dbg !11360 { | |
| %4 = alloca double*, align 8 | |
| %5 = alloca double*, align 8 | |
| %6 = alloca %struct.llaTrig_t*, align 8 | |
| %7 = alloca double, align 8 | |
| %8 = alloca double, align 8 | |
| %9 = alloca double, align 8 | |
| %10 = alloca double, align 8 | |
| %11 = alloca double, align 8 | |
| %12 = alloca double, align 8 | |
| %13 = alloca double, align 8 | |
| %14 = alloca double, align 8 | |
| store double* %0, double** %4, align 8 | |
| call void @llvm.dbg.declare(metadata double** %4, metadata !11361, metadata !DIExpression()), !dbg !11362 | |
| store double* %1, double** %5, align 8 | |
| call void @llvm.dbg.declare(metadata double** %5, metadata !11363, metadata !DIExpression()), !dbg !11364 | |
| store %struct.llaTrig_t* %2, %struct.llaTrig_t** %6, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.llaTrig_t** %6, metadata !11365, metadata !DIExpression()), !dbg !11366 | |
| call void @llvm.dbg.declare(metadata double* %7, metadata !11367, metadata !DIExpression()), !dbg !11368 | |
| %15 = load double*, double** %4, align 8, !dbg !11369 | |
| %16 = getelementptr inbounds double, double* %15, i64 0, !dbg !11369 | |
| %17 = load double, double* %16, align 8, !dbg !11369 | |
| %18 = load double*, double** %4, align 8, !dbg !11370 | |
| %19 = getelementptr inbounds double, double* %18, i64 0, !dbg !11370 | |
| %20 = load double, double* %19, align 8, !dbg !11370 | |
| %21 = fmul double %17, %20, !dbg !11371 | |
| %22 = load double*, double** %4, align 8, !dbg !11372 | |
| %23 = getelementptr inbounds double, double* %22, i64 1, !dbg !11372 | |
| %24 = load double, double* %23, align 8, !dbg !11372 | |
| %25 = load double*, double** %4, align 8, !dbg !11373 | |
| %26 = getelementptr inbounds double, double* %25, i64 1, !dbg !11373 | |
| %27 = load double, double* %26, align 8, !dbg !11373 | |
| %28 = fmul double %24, %27, !dbg !11374 | |
| %29 = fadd double %21, %28, !dbg !11375 | |
| store double %29, double* %7, align 8, !dbg !11368 | |
| %30 = load double, double* %7, align 8, !dbg !11376 | |
| %31 = fcmp oeq double %30, 0.000000e+00, !dbg !11378 | |
| br i1 %31, label %32, label %78, !dbg !11379 | |
| 32: ; preds = %3 | |
| %33 = load double*, double** %4, align 8, !dbg !11380 | |
| %34 = getelementptr inbounds double, double* %33, i64 2, !dbg !11380 | |
| %35 = load double, double* %34, align 8, !dbg !11380 | |
| %36 = call double @llvm.fabs.f64(double %35), !dbg !11382 | |
| %37 = fsub double %36, 0x41583FC4141C97D0, !dbg !11383 | |
| %38 = load double*, double** %5, align 8, !dbg !11384 | |
| %39 = getelementptr inbounds double, double* %38, i64 2, !dbg !11384 | |
| store double %37, double* %39, align 8, !dbg !11385 | |
| %40 = load double*, double** %5, align 8, !dbg !11386 | |
| %41 = getelementptr inbounds double, double* %40, i64 1, !dbg !11386 | |
| store double 0.000000e+00, double* %41, align 8, !dbg !11387 | |
| %42 = load %struct.llaTrig_t*, %struct.llaTrig_t** %6, align 8, !dbg !11388 | |
| %43 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %42, i32 0, i32 3, !dbg !11389 | |
| store double 1.000000e+00, double* %43, align 8, !dbg !11390 | |
| %44 = load %struct.llaTrig_t*, %struct.llaTrig_t** %6, align 8, !dbg !11391 | |
| %45 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %44, i32 0, i32 1, !dbg !11392 | |
| store double 0.000000e+00, double* %45, align 8, !dbg !11393 | |
| %46 = load double*, double** %4, align 8, !dbg !11394 | |
| %47 = getelementptr inbounds double, double* %46, i64 2, !dbg !11394 | |
| %48 = load double, double* %47, align 8, !dbg !11394 | |
| %49 = fcmp oeq double %48, 0.000000e+00, !dbg !11396 | |
| br i1 %49, label %50, label %57, !dbg !11397 | |
| 50: ; preds = %32 | |
| %51 = load double*, double** %5, align 8, !dbg !11398 | |
| %52 = getelementptr inbounds double, double* %51, i64 0, !dbg !11398 | |
| store double 0.000000e+00, double* %52, align 8, !dbg !11400 | |
| %53 = load %struct.llaTrig_t*, %struct.llaTrig_t** %6, align 8, !dbg !11401 | |
| %54 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %53, i32 0, i32 2, !dbg !11402 | |
| store double 1.000000e+00, double* %54, align 8, !dbg !11403 | |
| %55 = load %struct.llaTrig_t*, %struct.llaTrig_t** %6, align 8, !dbg !11404 | |
| %56 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %55, i32 0, i32 0, !dbg !11405 | |
| store double 0.000000e+00, double* %56, align 8, !dbg !11406 | |
| br label %77, !dbg !11407 | |
| 57: ; preds = %32 | |
| %58 = load double*, double** %4, align 8, !dbg !11408 | |
| %59 = getelementptr inbounds double, double* %58, i64 2, !dbg !11408 | |
| %60 = load double, double* %59, align 8, !dbg !11408 | |
| %61 = fcmp ogt double %60, 0.000000e+00, !dbg !11410 | |
| br i1 %61, label %62, label %69, !dbg !11411 | |
| 62: ; preds = %57 | |
| %63 = load double*, double** %5, align 8, !dbg !11412 | |
| %64 = getelementptr inbounds double, double* %63, i64 0, !dbg !11412 | |
| store double 0x3FF921FB54442D18, double* %64, align 8, !dbg !11414 | |
| %65 = load %struct.llaTrig_t*, %struct.llaTrig_t** %6, align 8, !dbg !11415 | |
| %66 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %65, i32 0, i32 2, !dbg !11416 | |
| store double 0.000000e+00, double* %66, align 8, !dbg !11417 | |
| %67 = load %struct.llaTrig_t*, %struct.llaTrig_t** %6, align 8, !dbg !11418 | |
| %68 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %67, i32 0, i32 0, !dbg !11419 | |
| store double 1.000000e+00, double* %68, align 8, !dbg !11420 | |
| br label %76, !dbg !11421 | |
| 69: ; preds = %57 | |
| %70 = load double*, double** %5, align 8, !dbg !11422 | |
| %71 = getelementptr inbounds double, double* %70, i64 0, !dbg !11422 | |
| store double 0xBFF921FB54442D18, double* %71, align 8, !dbg !11424 | |
| %72 = load %struct.llaTrig_t*, %struct.llaTrig_t** %6, align 8, !dbg !11425 | |
| %73 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %72, i32 0, i32 2, !dbg !11426 | |
| store double 0.000000e+00, double* %73, align 8, !dbg !11427 | |
| %74 = load %struct.llaTrig_t*, %struct.llaTrig_t** %6, align 8, !dbg !11428 | |
| %75 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %74, i32 0, i32 0, !dbg !11429 | |
| store double -1.000000e+00, double* %75, align 8, !dbg !11430 | |
| br label %76 | |
| 76: ; preds = %69, %62 | |
| br label %77 | |
| 77: ; preds = %76, %50 | |
| br label %183, !dbg !11431 | |
| 78: ; preds = %3 | |
| call void @llvm.dbg.declare(metadata double* %8, metadata !11432, metadata !DIExpression()), !dbg !11434 | |
| %79 = load double, double* %7, align 8, !dbg !11435 | |
| %80 = call double @sqrt(double %79) #7, !dbg !11436 | |
| store double %80, double* %8, align 8, !dbg !11434 | |
| call void @llvm.dbg.declare(metadata double* %9, metadata !11437, metadata !DIExpression()), !dbg !11438 | |
| %81 = load double*, double** %4, align 8, !dbg !11439 | |
| %82 = getelementptr inbounds double, double* %81, i64 2, !dbg !11439 | |
| %83 = load double, double* %82, align 8, !dbg !11439 | |
| %84 = fmul double %83, 0x415854A640000000, !dbg !11440 | |
| %85 = load double, double* %8, align 8, !dbg !11441 | |
| %86 = fmul double %85, 0x41583FC4141C97D0, !dbg !11442 | |
| %87 = call double @atan2(double %84, double %86) #7, !dbg !11443 | |
| store double %87, double* %9, align 8, !dbg !11438 | |
| call void @llvm.dbg.declare(metadata double* %10, metadata !11444, metadata !DIExpression()), !dbg !11445 | |
| %88 = load double, double* %9, align 8, !dbg !11446 | |
| %89 = call double @sin(double %88) #7, !dbg !11447 | |
| store double %89, double* %10, align 8, !dbg !11445 | |
| call void @llvm.dbg.declare(metadata double* %11, metadata !11448, metadata !DIExpression()), !dbg !11449 | |
| %90 = load double, double* %9, align 8, !dbg !11450 | |
| %91 = call double @cos(double %90) #7, !dbg !11451 | |
| store double %91, double* %11, align 8, !dbg !11449 | |
| call void @llvm.dbg.declare(metadata double* %12, metadata !11452, metadata !DIExpression()), !dbg !11453 | |
| %92 = load double*, double** %4, align 8, !dbg !11454 | |
| %93 = getelementptr inbounds double, double* %92, i64 2, !dbg !11454 | |
| %94 = load double, double* %93, align 8, !dbg !11454 | |
| %95 = load double, double* %10, align 8, !dbg !11455 | |
| %96 = fmul double 0x40E4EB29F7EAC4E4, %95, !dbg !11456 | |
| %97 = load double, double* %10, align 8, !dbg !11457 | |
| %98 = fmul double %96, %97, !dbg !11458 | |
| %99 = load double, double* %10, align 8, !dbg !11459 | |
| %100 = fmul double %98, %99, !dbg !11460 | |
| %101 = fadd double %94, %100, !dbg !11461 | |
| store double %101, double* %12, align 8, !dbg !11453 | |
| call void @llvm.dbg.declare(metadata double* %13, metadata !11462, metadata !DIExpression()), !dbg !11463 | |
| %102 = load double, double* %8, align 8, !dbg !11464 | |
| %103 = load double, double* %11, align 8, !dbg !11465 | |
| %104 = fmul double 0x40E4D93586D13544, %103, !dbg !11466 | |
| %105 = load double, double* %11, align 8, !dbg !11467 | |
| %106 = fmul double %104, %105, !dbg !11468 | |
| %107 = load double, double* %11, align 8, !dbg !11469 | |
| %108 = fmul double %106, %107, !dbg !11470 | |
| %109 = fsub double %102, %108, !dbg !11471 | |
| store double %109, double* %13, align 8, !dbg !11463 | |
| call void @llvm.dbg.declare(metadata double* %14, metadata !11472, metadata !DIExpression()), !dbg !11473 | |
| %110 = load double, double* %12, align 8, !dbg !11474 | |
| %111 = load double, double* %12, align 8, !dbg !11475 | |
| %112 = fmul double %110, %111, !dbg !11476 | |
| %113 = load double, double* %13, align 8, !dbg !11477 | |
| %114 = load double, double* %13, align 8, !dbg !11478 | |
| %115 = fmul double %113, %114, !dbg !11479 | |
| %116 = fadd double %112, %115, !dbg !11480 | |
| %117 = call double @sqrt(double %116) #7, !dbg !11481 | |
| store double %117, double* %14, align 8, !dbg !11473 | |
| %118 = load double, double* %12, align 8, !dbg !11482 | |
| %119 = load double, double* %13, align 8, !dbg !11483 | |
| %120 = call double @atan2(double %118, double %119) #7, !dbg !11484 | |
| %121 = load double*, double** %5, align 8, !dbg !11485 | |
| %122 = getelementptr inbounds double, double* %121, i64 0, !dbg !11485 | |
| store double %120, double* %122, align 8, !dbg !11486 | |
| %123 = load double, double* %12, align 8, !dbg !11487 | |
| %124 = load double, double* %14, align 8, !dbg !11488 | |
| %125 = fdiv double %123, %124, !dbg !11489 | |
| %126 = load %struct.llaTrig_t*, %struct.llaTrig_t** %6, align 8, !dbg !11490 | |
| %127 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %126, i32 0, i32 0, !dbg !11491 | |
| store double %125, double* %127, align 8, !dbg !11492 | |
| %128 = load double, double* %13, align 8, !dbg !11493 | |
| %129 = load double, double* %14, align 8, !dbg !11494 | |
| %130 = fdiv double %128, %129, !dbg !11495 | |
| %131 = load %struct.llaTrig_t*, %struct.llaTrig_t** %6, align 8, !dbg !11496 | |
| %132 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %131, i32 0, i32 2, !dbg !11497 | |
| store double %130, double* %132, align 8, !dbg !11498 | |
| %133 = load double*, double** %4, align 8, !dbg !11499 | |
| %134 = getelementptr inbounds double, double* %133, i64 1, !dbg !11499 | |
| %135 = load double, double* %134, align 8, !dbg !11499 | |
| %136 = load double*, double** %4, align 8, !dbg !11500 | |
| %137 = getelementptr inbounds double, double* %136, i64 0, !dbg !11500 | |
| %138 = load double, double* %137, align 8, !dbg !11500 | |
| %139 = call double @atan2(double %135, double %138) #7, !dbg !11501 | |
| %140 = load double*, double** %5, align 8, !dbg !11502 | |
| %141 = getelementptr inbounds double, double* %140, i64 1, !dbg !11502 | |
| store double %139, double* %141, align 8, !dbg !11503 | |
| %142 = load %struct.llaTrig_t*, %struct.llaTrig_t** %6, align 8, !dbg !11504 | |
| %143 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %142, i32 0, i32 2, !dbg !11506 | |
| %144 = load double, double* %143, align 8, !dbg !11506 | |
| %145 = call double @llvm.fabs.f64(double %144), !dbg !11507 | |
| %146 = fcmp ogt double %145, 1.000000e-03, !dbg !11508 | |
| br i1 %146, label %147, label %160, !dbg !11509 | |
| 147: ; preds = %78 | |
| %148 = load double, double* %8, align 8, !dbg !11510 | |
| %149 = load %struct.llaTrig_t*, %struct.llaTrig_t** %6, align 8, !dbg !11511 | |
| %150 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %149, i32 0, i32 2, !dbg !11512 | |
| %151 = load double, double* %150, align 8, !dbg !11512 | |
| %152 = fdiv double %148, %151, !dbg !11513 | |
| %153 = load %struct.llaTrig_t*, %struct.llaTrig_t** %6, align 8, !dbg !11514 | |
| %154 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %153, i32 0, i32 0, !dbg !11515 | |
| %155 = load double, double* %154, align 8, !dbg !11515 | |
| %156 = call double @radiusOfEWCurvFromSinLat(double %155), !dbg !11516 | |
| %157 = fsub double %152, %156, !dbg !11517 | |
| %158 = load double*, double** %5, align 8, !dbg !11518 | |
| %159 = getelementptr inbounds double, double* %158, i64 2, !dbg !11518 | |
| store double %157, double* %159, align 8, !dbg !11519 | |
| br label %168, !dbg !11518 | |
| 160: ; preds = %78 | |
| %161 = load double*, double** %4, align 8, !dbg !11520 | |
| %162 = getelementptr inbounds double, double* %161, i64 2, !dbg !11520 | |
| %163 = load double, double* %162, align 8, !dbg !11520 | |
| %164 = call double @llvm.fabs.f64(double %163), !dbg !11521 | |
| %165 = fsub double %164, 0x41583FC4141C97D0, !dbg !11522 | |
| %166 = load double*, double** %5, align 8, !dbg !11523 | |
| %167 = getelementptr inbounds double, double* %166, i64 2, !dbg !11523 | |
| store double %165, double* %167, align 8, !dbg !11524 | |
| br label %168 | |
| 168: ; preds = %160, %147 | |
| %169 = load double*, double** %4, align 8, !dbg !11525 | |
| %170 = getelementptr inbounds double, double* %169, i64 0, !dbg !11525 | |
| %171 = load double, double* %170, align 8, !dbg !11525 | |
| %172 = load double, double* %8, align 8, !dbg !11526 | |
| %173 = fdiv double %171, %172, !dbg !11527 | |
| %174 = load %struct.llaTrig_t*, %struct.llaTrig_t** %6, align 8, !dbg !11528 | |
| %175 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %174, i32 0, i32 3, !dbg !11529 | |
| store double %173, double* %175, align 8, !dbg !11530 | |
| %176 = load double*, double** %4, align 8, !dbg !11531 | |
| %177 = getelementptr inbounds double, double* %176, i64 1, !dbg !11531 | |
| %178 = load double, double* %177, align 8, !dbg !11531 | |
| %179 = load double, double* %8, align 8, !dbg !11532 | |
| %180 = fdiv double %178, %179, !dbg !11533 | |
| %181 = load %struct.llaTrig_t*, %struct.llaTrig_t** %6, align 8, !dbg !11534 | |
| %182 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %181, i32 0, i32 1, !dbg !11535 | |
| store double %180, double* %182, align 8, !dbg !11536 | |
| br label %183 | |
| 183: ; preds = %168, %77 | |
| ret void, !dbg !11537 | |
| } | |
| ; Function Attrs: nounwind | |
| declare dso_local double @atan2(double, double) #5 | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @geodeticToGeocentric(double* %0, double* %1) #0 !dbg !11538 { | |
| %3 = alloca double*, align 8 | |
| %4 = alloca double*, align 8 | |
| %5 = alloca double, align 8 | |
| %6 = alloca double, align 8 | |
| %7 = alloca double, align 8 | |
| %8 = alloca double, align 8 | |
| store double* %0, double** %3, align 8 | |
| call void @llvm.dbg.declare(metadata double** %3, metadata !11539, metadata !DIExpression()), !dbg !11540 | |
| store double* %1, double** %4, align 8 | |
| call void @llvm.dbg.declare(metadata double** %4, metadata !11541, metadata !DIExpression()), !dbg !11542 | |
| call void @llvm.dbg.declare(metadata double* %5, metadata !11543, metadata !DIExpression()), !dbg !11544 | |
| %9 = load double*, double** %3, align 8, !dbg !11545 | |
| %10 = getelementptr inbounds double, double* %9, i64 0, !dbg !11545 | |
| %11 = load double, double* %10, align 8, !dbg !11545 | |
| %12 = call double @sin(double %11) #7, !dbg !11546 | |
| store double %12, double* %5, align 8, !dbg !11544 | |
| call void @llvm.dbg.declare(metadata double* %6, metadata !11547, metadata !DIExpression()), !dbg !11548 | |
| %13 = load double, double* %5, align 8, !dbg !11549 | |
| %14 = call double @radiusOfEWCurvFromSinLat(double %13), !dbg !11550 | |
| store double %14, double* %6, align 8, !dbg !11548 | |
| call void @llvm.dbg.declare(metadata double* %7, metadata !11551, metadata !DIExpression()), !dbg !11552 | |
| %15 = load double, double* %6, align 8, !dbg !11553 | |
| %16 = load double*, double** %3, align 8, !dbg !11554 | |
| %17 = getelementptr inbounds double, double* %16, i64 2, !dbg !11554 | |
| %18 = load double, double* %17, align 8, !dbg !11554 | |
| %19 = fadd double %15, %18, !dbg !11555 | |
| %20 = load double*, double** %3, align 8, !dbg !11556 | |
| %21 = getelementptr inbounds double, double* %20, i64 0, !dbg !11556 | |
| %22 = load double, double* %21, align 8, !dbg !11556 | |
| %23 = call double @cos(double %22) #7, !dbg !11557 | |
| %24 = fmul double %19, %23, !dbg !11558 | |
| store double %24, double* %7, align 8, !dbg !11552 | |
| call void @llvm.dbg.declare(metadata double* %8, metadata !11559, metadata !DIExpression()), !dbg !11560 | |
| %25 = load double, double* %6, align 8, !dbg !11561 | |
| %26 = fmul double %25, 0x3FEFC928DE1C02D6, !dbg !11562 | |
| %27 = load double*, double** %3, align 8, !dbg !11563 | |
| %28 = getelementptr inbounds double, double* %27, i64 2, !dbg !11563 | |
| %29 = load double, double* %28, align 8, !dbg !11563 | |
| %30 = fadd double %26, %29, !dbg !11564 | |
| %31 = load double, double* %5, align 8, !dbg !11565 | |
| %32 = fmul double %30, %31, !dbg !11566 | |
| store double %32, double* %8, align 8, !dbg !11560 | |
| %33 = load double, double* %7, align 8, !dbg !11567 | |
| %34 = load double, double* %7, align 8, !dbg !11568 | |
| %35 = fmul double %33, %34, !dbg !11569 | |
| %36 = load double, double* %8, align 8, !dbg !11570 | |
| %37 = load double, double* %8, align 8, !dbg !11571 | |
| %38 = fmul double %36, %37, !dbg !11572 | |
| %39 = fadd double %35, %38, !dbg !11573 | |
| %40 = call double @sqrt(double %39) #7, !dbg !11574 | |
| %41 = load double*, double** %4, align 8, !dbg !11575 | |
| %42 = getelementptr inbounds double, double* %41, i64 2, !dbg !11575 | |
| store double %40, double* %42, align 8, !dbg !11576 | |
| %43 = load double, double* %8, align 8, !dbg !11577 | |
| %44 = load double*, double** %4, align 8, !dbg !11578 | |
| %45 = getelementptr inbounds double, double* %44, i64 2, !dbg !11578 | |
| %46 = load double, double* %45, align 8, !dbg !11578 | |
| %47 = fdiv double %43, %46, !dbg !11579 | |
| %48 = call double @asin(double %47) #7, !dbg !11580 | |
| %49 = load double*, double** %4, align 8, !dbg !11581 | |
| %50 = getelementptr inbounds double, double* %49, i64 0, !dbg !11581 | |
| store double %48, double* %50, align 8, !dbg !11582 | |
| %51 = load double*, double** %3, align 8, !dbg !11583 | |
| %52 = getelementptr inbounds double, double* %51, i64 1, !dbg !11583 | |
| %53 = load double, double* %52, align 8, !dbg !11583 | |
| %54 = load double*, double** %4, align 8, !dbg !11584 | |
| %55 = getelementptr inbounds double, double* %54, i64 1, !dbg !11584 | |
| store double %53, double* %55, align 8, !dbg !11585 | |
| ret void, !dbg !11586 | |
| } | |
| ; Function Attrs: nounwind | |
| declare dso_local double @asin(double) #5 | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local i64 @testEarthPosition() #0 !dbg !11587 { | |
| %1 = alloca i64, align 8 | |
| %2 = alloca double, align 8 | |
| %3 = alloca [3 x double], align 16 | |
| %4 = alloca [3 x double], align 16 | |
| %5 = alloca %struct.llaTrig_t, align 8 | |
| call void @llvm.dbg.declare(metadata double* %2, metadata !11589, metadata !DIExpression()), !dbg !11590 | |
| store double 0.000000e+00, double* %2, align 8, !dbg !11590 | |
| call void @llvm.dbg.declare(metadata [3 x double]* %3, metadata !11591, metadata !DIExpression()), !dbg !11592 | |
| %6 = bitcast [3 x double]* %3 to i8*, !dbg !11592 | |
| call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %6, i8* align 16 bitcast ([3 x double]* @__const.testEarthPosition.posECEF to i8*), i64 24, i1 false), !dbg !11592 | |
| call void @llvm.dbg.declare(metadata [3 x double]* %4, metadata !11593, metadata !DIExpression()), !dbg !11594 | |
| call void @llvm.dbg.declare(metadata %struct.llaTrig_t* %5, metadata !11595, metadata !DIExpression()), !dbg !11596 | |
| %7 = getelementptr inbounds [3 x double], [3 x double]* %3, i64 0, i64 0, !dbg !11597 | |
| %8 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 0, !dbg !11598 | |
| call void @ecefToLLAandTrig(double* %7, double* %8, %struct.llaTrig_t* %5), !dbg !11599 | |
| %9 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 0, !dbg !11600 | |
| %10 = load double, double* %9, align 16, !dbg !11600 | |
| %11 = fsub double 0.000000e+00, %10, !dbg !11601 | |
| %12 = call double @llvm.fabs.f64(double %11), !dbg !11602 | |
| %13 = fmul double %12, 0x41584DB0315EDD45, !dbg !11603 | |
| %14 = load double, double* %2, align 8, !dbg !11604 | |
| %15 = fadd double %14, %13, !dbg !11604 | |
| store double %15, double* %2, align 8, !dbg !11604 | |
| %16 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 1, !dbg !11605 | |
| %17 = load double, double* %16, align 8, !dbg !11605 | |
| %18 = fsub double 0.000000e+00, %17, !dbg !11606 | |
| %19 = call double @llvm.fabs.f64(double %18), !dbg !11607 | |
| %20 = fmul double %19, 0x41584DB0315EDD45, !dbg !11608 | |
| %21 = load double, double* %2, align 8, !dbg !11609 | |
| %22 = fadd double %21, %20, !dbg !11609 | |
| store double %22, double* %2, align 8, !dbg !11609 | |
| %23 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 2, !dbg !11610 | |
| %24 = load double, double* %23, align 16, !dbg !11610 | |
| %25 = fsub double 0.000000e+00, %24, !dbg !11611 | |
| %26 = call double @llvm.fabs.f64(double %25), !dbg !11612 | |
| %27 = load double, double* %2, align 8, !dbg !11613 | |
| %28 = fadd double %27, %26, !dbg !11613 | |
| store double %28, double* %2, align 8, !dbg !11613 | |
| %29 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 2, !dbg !11614 | |
| %30 = load double, double* %29, align 8, !dbg !11614 | |
| %31 = fsub double 1.000000e+00, %30, !dbg !11615 | |
| %32 = call double @llvm.fabs.f64(double %31), !dbg !11616 | |
| %33 = load double, double* %2, align 8, !dbg !11617 | |
| %34 = fadd double %33, %32, !dbg !11617 | |
| store double %34, double* %2, align 8, !dbg !11617 | |
| %35 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 3, !dbg !11618 | |
| %36 = load double, double* %35, align 8, !dbg !11618 | |
| %37 = fsub double 1.000000e+00, %36, !dbg !11619 | |
| %38 = call double @llvm.fabs.f64(double %37), !dbg !11620 | |
| %39 = load double, double* %2, align 8, !dbg !11621 | |
| %40 = fadd double %39, %38, !dbg !11621 | |
| store double %40, double* %2, align 8, !dbg !11621 | |
| %41 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 0, !dbg !11622 | |
| %42 = load double, double* %41, align 8, !dbg !11622 | |
| %43 = fsub double 0.000000e+00, %42, !dbg !11623 | |
| %44 = call double @llvm.fabs.f64(double %43), !dbg !11624 | |
| %45 = load double, double* %2, align 8, !dbg !11625 | |
| %46 = fadd double %45, %44, !dbg !11625 | |
| store double %46, double* %2, align 8, !dbg !11625 | |
| %47 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 1, !dbg !11626 | |
| %48 = load double, double* %47, align 8, !dbg !11626 | |
| %49 = fsub double 0.000000e+00, %48, !dbg !11627 | |
| %50 = call double @llvm.fabs.f64(double %49), !dbg !11628 | |
| %51 = load double, double* %2, align 8, !dbg !11629 | |
| %52 = fadd double %51, %50, !dbg !11629 | |
| store double %52, double* %2, align 8, !dbg !11629 | |
| %53 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 0, !dbg !11630 | |
| %54 = getelementptr inbounds [3 x double], [3 x double]* %3, i64 0, i64 0, !dbg !11631 | |
| call void @llaToECEFandTrig(double* %53, double* %54, %struct.llaTrig_t* %5), !dbg !11632 | |
| %55 = getelementptr inbounds [3 x double], [3 x double]* %3, i64 0, i64 0, !dbg !11633 | |
| %56 = load double, double* %55, align 16, !dbg !11633 | |
| %57 = fsub double 0x415854A640000000, %56, !dbg !11634 | |
| %58 = call double @llvm.fabs.f64(double %57), !dbg !11635 | |
| %59 = load double, double* %2, align 8, !dbg !11636 | |
| %60 = fadd double %59, %58, !dbg !11636 | |
| store double %60, double* %2, align 8, !dbg !11636 | |
| %61 = getelementptr inbounds [3 x double], [3 x double]* %3, i64 0, i64 1, !dbg !11637 | |
| %62 = load double, double* %61, align 8, !dbg !11637 | |
| %63 = fsub double 0.000000e+00, %62, !dbg !11638 | |
| %64 = call double @llvm.fabs.f64(double %63), !dbg !11639 | |
| %65 = load double, double* %2, align 8, !dbg !11640 | |
| %66 = fadd double %65, %64, !dbg !11640 | |
| store double %66, double* %2, align 8, !dbg !11640 | |
| %67 = getelementptr inbounds [3 x double], [3 x double]* %3, i64 0, i64 2, !dbg !11641 | |
| %68 = load double, double* %67, align 16, !dbg !11641 | |
| %69 = fsub double 0.000000e+00, %68, !dbg !11642 | |
| %70 = call double @llvm.fabs.f64(double %69), !dbg !11643 | |
| %71 = load double, double* %2, align 8, !dbg !11644 | |
| %72 = fadd double %71, %70, !dbg !11644 | |
| store double %72, double* %2, align 8, !dbg !11644 | |
| %73 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 2, !dbg !11645 | |
| %74 = load double, double* %73, align 8, !dbg !11645 | |
| %75 = fsub double 1.000000e+00, %74, !dbg !11646 | |
| %76 = call double @llvm.fabs.f64(double %75), !dbg !11647 | |
| %77 = load double, double* %2, align 8, !dbg !11648 | |
| %78 = fadd double %77, %76, !dbg !11648 | |
| store double %78, double* %2, align 8, !dbg !11648 | |
| %79 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 3, !dbg !11649 | |
| %80 = load double, double* %79, align 8, !dbg !11649 | |
| %81 = fsub double 1.000000e+00, %80, !dbg !11650 | |
| %82 = call double @llvm.fabs.f64(double %81), !dbg !11651 | |
| %83 = load double, double* %2, align 8, !dbg !11652 | |
| %84 = fadd double %83, %82, !dbg !11652 | |
| store double %84, double* %2, align 8, !dbg !11652 | |
| %85 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 0, !dbg !11653 | |
| %86 = load double, double* %85, align 8, !dbg !11653 | |
| %87 = fsub double 0.000000e+00, %86, !dbg !11654 | |
| %88 = call double @llvm.fabs.f64(double %87), !dbg !11655 | |
| %89 = load double, double* %2, align 8, !dbg !11656 | |
| %90 = fadd double %89, %88, !dbg !11656 | |
| store double %90, double* %2, align 8, !dbg !11656 | |
| %91 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 1, !dbg !11657 | |
| %92 = load double, double* %91, align 8, !dbg !11657 | |
| %93 = fsub double 0.000000e+00, %92, !dbg !11658 | |
| %94 = call double @llvm.fabs.f64(double %93), !dbg !11659 | |
| %95 = load double, double* %2, align 8, !dbg !11660 | |
| %96 = fadd double %95, %94, !dbg !11660 | |
| store double %96, double* %2, align 8, !dbg !11660 | |
| %97 = getelementptr inbounds [3 x double], [3 x double]* %3, i64 0, i64 0, !dbg !11661 | |
| store double 0.000000e+00, double* %97, align 16, !dbg !11662 | |
| %98 = getelementptr inbounds [3 x double], [3 x double]* %3, i64 0, i64 1, !dbg !11663 | |
| store double 0x415854A640000000, double* %98, align 8, !dbg !11664 | |
| %99 = getelementptr inbounds [3 x double], [3 x double]* %3, i64 0, i64 0, !dbg !11665 | |
| %100 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 0, !dbg !11666 | |
| call void @ecefToLLAandTrig(double* %99, double* %100, %struct.llaTrig_t* %5), !dbg !11667 | |
| %101 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 0, !dbg !11668 | |
| %102 = load double, double* %101, align 16, !dbg !11668 | |
| %103 = fsub double 0.000000e+00, %102, !dbg !11669 | |
| %104 = call double @llvm.fabs.f64(double %103), !dbg !11670 | |
| %105 = fmul double %104, 0x41584DB0315EDD45, !dbg !11671 | |
| %106 = load double, double* %2, align 8, !dbg !11672 | |
| %107 = fadd double %106, %105, !dbg !11672 | |
| store double %107, double* %2, align 8, !dbg !11672 | |
| %108 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 1, !dbg !11673 | |
| %109 = load double, double* %108, align 8, !dbg !11673 | |
| %110 = fsub double 0x3FF921FB54442D18, %109, !dbg !11674 | |
| %111 = call double @llvm.fabs.f64(double %110), !dbg !11675 | |
| %112 = fmul double %111, 0x41584DB0315EDD45, !dbg !11676 | |
| %113 = load double, double* %2, align 8, !dbg !11677 | |
| %114 = fadd double %113, %112, !dbg !11677 | |
| store double %114, double* %2, align 8, !dbg !11677 | |
| %115 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 2, !dbg !11678 | |
| %116 = load double, double* %115, align 16, !dbg !11678 | |
| %117 = fsub double 0.000000e+00, %116, !dbg !11679 | |
| %118 = call double @llvm.fabs.f64(double %117), !dbg !11680 | |
| %119 = load double, double* %2, align 8, !dbg !11681 | |
| %120 = fadd double %119, %118, !dbg !11681 | |
| store double %120, double* %2, align 8, !dbg !11681 | |
| %121 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 2, !dbg !11682 | |
| %122 = load double, double* %121, align 8, !dbg !11682 | |
| %123 = fsub double 1.000000e+00, %122, !dbg !11683 | |
| %124 = call double @llvm.fabs.f64(double %123), !dbg !11684 | |
| %125 = load double, double* %2, align 8, !dbg !11685 | |
| %126 = fadd double %125, %124, !dbg !11685 | |
| store double %126, double* %2, align 8, !dbg !11685 | |
| %127 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 3, !dbg !11686 | |
| %128 = load double, double* %127, align 8, !dbg !11686 | |
| %129 = fsub double 0.000000e+00, %128, !dbg !11687 | |
| %130 = call double @llvm.fabs.f64(double %129), !dbg !11688 | |
| %131 = load double, double* %2, align 8, !dbg !11689 | |
| %132 = fadd double %131, %130, !dbg !11689 | |
| store double %132, double* %2, align 8, !dbg !11689 | |
| %133 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 0, !dbg !11690 | |
| %134 = load double, double* %133, align 8, !dbg !11690 | |
| %135 = fsub double 0.000000e+00, %134, !dbg !11691 | |
| %136 = call double @llvm.fabs.f64(double %135), !dbg !11692 | |
| %137 = load double, double* %2, align 8, !dbg !11693 | |
| %138 = fadd double %137, %136, !dbg !11693 | |
| store double %138, double* %2, align 8, !dbg !11693 | |
| %139 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 1, !dbg !11694 | |
| %140 = load double, double* %139, align 8, !dbg !11694 | |
| %141 = fsub double 1.000000e+00, %140, !dbg !11695 | |
| %142 = call double @llvm.fabs.f64(double %141), !dbg !11696 | |
| %143 = load double, double* %2, align 8, !dbg !11697 | |
| %144 = fadd double %143, %142, !dbg !11697 | |
| store double %144, double* %2, align 8, !dbg !11697 | |
| %145 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 0, !dbg !11698 | |
| %146 = getelementptr inbounds [3 x double], [3 x double]* %3, i64 0, i64 0, !dbg !11699 | |
| call void @llaToECEFandTrig(double* %145, double* %146, %struct.llaTrig_t* %5), !dbg !11700 | |
| %147 = getelementptr inbounds [3 x double], [3 x double]* %3, i64 0, i64 1, !dbg !11701 | |
| %148 = load double, double* %147, align 8, !dbg !11701 | |
| %149 = fsub double 0x415854A640000000, %148, !dbg !11702 | |
| %150 = call double @llvm.fabs.f64(double %149), !dbg !11703 | |
| %151 = load double, double* %2, align 8, !dbg !11704 | |
| %152 = fadd double %151, %150, !dbg !11704 | |
| store double %152, double* %2, align 8, !dbg !11704 | |
| %153 = getelementptr inbounds [3 x double], [3 x double]* %3, i64 0, i64 0, !dbg !11705 | |
| %154 = load double, double* %153, align 16, !dbg !11705 | |
| %155 = fsub double 0.000000e+00, %154, !dbg !11706 | |
| %156 = call double @llvm.fabs.f64(double %155), !dbg !11707 | |
| %157 = load double, double* %2, align 8, !dbg !11708 | |
| %158 = fadd double %157, %156, !dbg !11708 | |
| store double %158, double* %2, align 8, !dbg !11708 | |
| %159 = getelementptr inbounds [3 x double], [3 x double]* %3, i64 0, i64 2, !dbg !11709 | |
| %160 = load double, double* %159, align 16, !dbg !11709 | |
| %161 = fsub double 0.000000e+00, %160, !dbg !11710 | |
| %162 = call double @llvm.fabs.f64(double %161), !dbg !11711 | |
| %163 = load double, double* %2, align 8, !dbg !11712 | |
| %164 = fadd double %163, %162, !dbg !11712 | |
| store double %164, double* %2, align 8, !dbg !11712 | |
| %165 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 2, !dbg !11713 | |
| %166 = load double, double* %165, align 8, !dbg !11713 | |
| %167 = fsub double 1.000000e+00, %166, !dbg !11714 | |
| %168 = call double @llvm.fabs.f64(double %167), !dbg !11715 | |
| %169 = load double, double* %2, align 8, !dbg !11716 | |
| %170 = fadd double %169, %168, !dbg !11716 | |
| store double %170, double* %2, align 8, !dbg !11716 | |
| %171 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 3, !dbg !11717 | |
| %172 = load double, double* %171, align 8, !dbg !11717 | |
| %173 = fsub double 0.000000e+00, %172, !dbg !11718 | |
| %174 = call double @llvm.fabs.f64(double %173), !dbg !11719 | |
| %175 = load double, double* %2, align 8, !dbg !11720 | |
| %176 = fadd double %175, %174, !dbg !11720 | |
| store double %176, double* %2, align 8, !dbg !11720 | |
| %177 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 0, !dbg !11721 | |
| %178 = load double, double* %177, align 8, !dbg !11721 | |
| %179 = fsub double 0.000000e+00, %178, !dbg !11722 | |
| %180 = call double @llvm.fabs.f64(double %179), !dbg !11723 | |
| %181 = load double, double* %2, align 8, !dbg !11724 | |
| %182 = fadd double %181, %180, !dbg !11724 | |
| store double %182, double* %2, align 8, !dbg !11724 | |
| %183 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 1, !dbg !11725 | |
| %184 = load double, double* %183, align 8, !dbg !11725 | |
| %185 = fsub double 1.000000e+00, %184, !dbg !11726 | |
| %186 = call double @llvm.fabs.f64(double %185), !dbg !11727 | |
| %187 = load double, double* %2, align 8, !dbg !11728 | |
| %188 = fadd double %187, %186, !dbg !11728 | |
| store double %188, double* %2, align 8, !dbg !11728 | |
| %189 = getelementptr inbounds [3 x double], [3 x double]* %3, i64 0, i64 0, !dbg !11729 | |
| store double 0.000000e+00, double* %189, align 16, !dbg !11730 | |
| %190 = getelementptr inbounds [3 x double], [3 x double]* %3, i64 0, i64 1, !dbg !11731 | |
| store double 0.000000e+00, double* %190, align 8, !dbg !11732 | |
| %191 = getelementptr inbounds [3 x double], [3 x double]* %3, i64 0, i64 2, !dbg !11733 | |
| store double 0x415854A640000000, double* %191, align 16, !dbg !11734 | |
| %192 = getelementptr inbounds [3 x double], [3 x double]* %3, i64 0, i64 0, !dbg !11735 | |
| %193 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 0, !dbg !11736 | |
| call void @ecefToLLAandTrig(double* %192, double* %193, %struct.llaTrig_t* %5), !dbg !11737 | |
| %194 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 0, !dbg !11738 | |
| %195 = load double, double* %194, align 16, !dbg !11738 | |
| %196 = fsub double 0x3FF921FB54442D18, %195, !dbg !11739 | |
| %197 = call double @llvm.fabs.f64(double %196), !dbg !11740 | |
| %198 = fmul double %197, 0x41584DB0315EDD45, !dbg !11741 | |
| %199 = load double, double* %2, align 8, !dbg !11742 | |
| %200 = fadd double %199, %198, !dbg !11742 | |
| store double %200, double* %2, align 8, !dbg !11742 | |
| %201 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 1, !dbg !11743 | |
| %202 = load double, double* %201, align 8, !dbg !11743 | |
| %203 = fsub double 0.000000e+00, %202, !dbg !11744 | |
| %204 = call double @llvm.fabs.f64(double %203), !dbg !11745 | |
| %205 = fmul double %204, 0x41584DB0315EDD45, !dbg !11746 | |
| %206 = load double, double* %2, align 8, !dbg !11747 | |
| %207 = fadd double %206, %205, !dbg !11747 | |
| store double %207, double* %2, align 8, !dbg !11747 | |
| %208 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 2, !dbg !11748 | |
| %209 = load double, double* %208, align 16, !dbg !11748 | |
| %210 = fsub double 0x40D4E22BE3683000, %209, !dbg !11749 | |
| %211 = call double @llvm.fabs.f64(double %210), !dbg !11750 | |
| %212 = load double, double* %2, align 8, !dbg !11751 | |
| %213 = fadd double %212, %211, !dbg !11751 | |
| store double %213, double* %2, align 8, !dbg !11751 | |
| %214 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 2, !dbg !11752 | |
| %215 = load double, double* %214, align 8, !dbg !11752 | |
| %216 = fsub double 0.000000e+00, %215, !dbg !11753 | |
| %217 = call double @llvm.fabs.f64(double %216), !dbg !11754 | |
| %218 = load double, double* %2, align 8, !dbg !11755 | |
| %219 = fadd double %218, %217, !dbg !11755 | |
| store double %219, double* %2, align 8, !dbg !11755 | |
| %220 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 3, !dbg !11756 | |
| %221 = load double, double* %220, align 8, !dbg !11756 | |
| %222 = fsub double 1.000000e+00, %221, !dbg !11757 | |
| %223 = call double @llvm.fabs.f64(double %222), !dbg !11758 | |
| %224 = load double, double* %2, align 8, !dbg !11759 | |
| %225 = fadd double %224, %223, !dbg !11759 | |
| store double %225, double* %2, align 8, !dbg !11759 | |
| %226 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 0, !dbg !11760 | |
| %227 = load double, double* %226, align 8, !dbg !11760 | |
| %228 = fsub double 1.000000e+00, %227, !dbg !11761 | |
| %229 = call double @llvm.fabs.f64(double %228), !dbg !11762 | |
| %230 = load double, double* %2, align 8, !dbg !11763 | |
| %231 = fadd double %230, %229, !dbg !11763 | |
| store double %231, double* %2, align 8, !dbg !11763 | |
| %232 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 1, !dbg !11764 | |
| %233 = load double, double* %232, align 8, !dbg !11764 | |
| %234 = fsub double 0.000000e+00, %233, !dbg !11765 | |
| %235 = call double @llvm.fabs.f64(double %234), !dbg !11766 | |
| %236 = load double, double* %2, align 8, !dbg !11767 | |
| %237 = fadd double %236, %235, !dbg !11767 | |
| store double %237, double* %2, align 8, !dbg !11767 | |
| %238 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 0, !dbg !11768 | |
| %239 = getelementptr inbounds [3 x double], [3 x double]* %3, i64 0, i64 0, !dbg !11769 | |
| call void @llaToECEFandTrig(double* %238, double* %239, %struct.llaTrig_t* %5), !dbg !11770 | |
| %240 = getelementptr inbounds [3 x double], [3 x double]* %3, i64 0, i64 2, !dbg !11771 | |
| %241 = load double, double* %240, align 16, !dbg !11771 | |
| %242 = fsub double 0x415854A640000000, %241, !dbg !11772 | |
| %243 = call double @llvm.fabs.f64(double %242), !dbg !11773 | |
| %244 = load double, double* %2, align 8, !dbg !11774 | |
| %245 = fadd double %244, %243, !dbg !11774 | |
| store double %245, double* %2, align 8, !dbg !11774 | |
| %246 = getelementptr inbounds [3 x double], [3 x double]* %3, i64 0, i64 1, !dbg !11775 | |
| %247 = load double, double* %246, align 8, !dbg !11775 | |
| %248 = fsub double 0.000000e+00, %247, !dbg !11776 | |
| %249 = call double @llvm.fabs.f64(double %248), !dbg !11777 | |
| %250 = load double, double* %2, align 8, !dbg !11778 | |
| %251 = fadd double %250, %249, !dbg !11778 | |
| store double %251, double* %2, align 8, !dbg !11778 | |
| %252 = getelementptr inbounds [3 x double], [3 x double]* %3, i64 0, i64 0, !dbg !11779 | |
| %253 = load double, double* %252, align 16, !dbg !11779 | |
| %254 = fsub double 0.000000e+00, %253, !dbg !11780 | |
| %255 = call double @llvm.fabs.f64(double %254), !dbg !11781 | |
| %256 = load double, double* %2, align 8, !dbg !11782 | |
| %257 = fadd double %256, %255, !dbg !11782 | |
| store double %257, double* %2, align 8, !dbg !11782 | |
| %258 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 2, !dbg !11783 | |
| %259 = load double, double* %258, align 8, !dbg !11783 | |
| %260 = fsub double 0.000000e+00, %259, !dbg !11784 | |
| %261 = call double @llvm.fabs.f64(double %260), !dbg !11785 | |
| %262 = load double, double* %2, align 8, !dbg !11786 | |
| %263 = fadd double %262, %261, !dbg !11786 | |
| store double %263, double* %2, align 8, !dbg !11786 | |
| %264 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 3, !dbg !11787 | |
| %265 = load double, double* %264, align 8, !dbg !11787 | |
| %266 = fsub double 1.000000e+00, %265, !dbg !11788 | |
| %267 = call double @llvm.fabs.f64(double %266), !dbg !11789 | |
| %268 = load double, double* %2, align 8, !dbg !11790 | |
| %269 = fadd double %268, %267, !dbg !11790 | |
| store double %269, double* %2, align 8, !dbg !11790 | |
| %270 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 0, !dbg !11791 | |
| %271 = load double, double* %270, align 8, !dbg !11791 | |
| %272 = fsub double 1.000000e+00, %271, !dbg !11792 | |
| %273 = call double @llvm.fabs.f64(double %272), !dbg !11793 | |
| %274 = load double, double* %2, align 8, !dbg !11794 | |
| %275 = fadd double %274, %273, !dbg !11794 | |
| store double %275, double* %2, align 8, !dbg !11794 | |
| %276 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 1, !dbg !11795 | |
| %277 = load double, double* %276, align 8, !dbg !11795 | |
| %278 = fsub double 0.000000e+00, %277, !dbg !11796 | |
| %279 = call double @llvm.fabs.f64(double %278), !dbg !11797 | |
| %280 = load double, double* %2, align 8, !dbg !11798 | |
| %281 = fadd double %280, %279, !dbg !11798 | |
| store double %281, double* %2, align 8, !dbg !11798 | |
| %282 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 0, !dbg !11799 | |
| store double 0x3FE921FB54442D18, double* %282, align 16, !dbg !11800 | |
| %283 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 1, !dbg !11801 | |
| store double 0xC002D97C7F3321D2, double* %283, align 8, !dbg !11802 | |
| %284 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 2, !dbg !11803 | |
| store double 2.550000e+02, double* %284, align 16, !dbg !11804 | |
| %285 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 0, !dbg !11805 | |
| %286 = getelementptr inbounds [3 x double], [3 x double]* %3, i64 0, i64 0, !dbg !11806 | |
| call void @llaToECEFandTrig(double* %285, double* %286, %struct.llaTrig_t* %5), !dbg !11807 | |
| %287 = getelementptr inbounds [3 x double], [3 x double]* %3, i64 0, i64 0, !dbg !11808 | |
| %288 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 0, !dbg !11809 | |
| call void @ecefToLLAandTrig(double* %287, double* %288, %struct.llaTrig_t* %5), !dbg !11810 | |
| %289 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 0, !dbg !11811 | |
| %290 = load double, double* %289, align 16, !dbg !11811 | |
| %291 = fsub double 0x3FE921FB54442D18, %290, !dbg !11812 | |
| %292 = call double @llvm.fabs.f64(double %291), !dbg !11813 | |
| %293 = fmul double %292, 0x41584DB0315EDD45, !dbg !11814 | |
| %294 = load double, double* %2, align 8, !dbg !11815 | |
| %295 = fadd double %294, %293, !dbg !11815 | |
| store double %295, double* %2, align 8, !dbg !11815 | |
| %296 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 1, !dbg !11816 | |
| %297 = load double, double* %296, align 8, !dbg !11816 | |
| %298 = fsub double 0xC002D97C7F3321D2, %297, !dbg !11817 | |
| %299 = call double @llvm.fabs.f64(double %298), !dbg !11818 | |
| %300 = fmul double %299, 0x41584DB0315EDD45, !dbg !11819 | |
| %301 = load double, double* %2, align 8, !dbg !11820 | |
| %302 = fadd double %301, %300, !dbg !11820 | |
| store double %302, double* %2, align 8, !dbg !11820 | |
| %303 = getelementptr inbounds [3 x double], [3 x double]* %4, i64 0, i64 2, !dbg !11821 | |
| %304 = load double, double* %303, align 16, !dbg !11821 | |
| %305 = fsub double 2.550000e+02, %304, !dbg !11822 | |
| %306 = call double @llvm.fabs.f64(double %305), !dbg !11823 | |
| %307 = load double, double* %2, align 8, !dbg !11824 | |
| %308 = fadd double %307, %306, !dbg !11824 | |
| store double %308, double* %2, align 8, !dbg !11824 | |
| %309 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 2, !dbg !11825 | |
| %310 = load double, double* %309, align 8, !dbg !11825 | |
| %311 = fsub double 0x3FE6A09E667F3BD1, %310, !dbg !11826 | |
| %312 = call double @llvm.fabs.f64(double %311), !dbg !11827 | |
| %313 = load double, double* %2, align 8, !dbg !11828 | |
| %314 = fadd double %313, %312, !dbg !11828 | |
| store double %314, double* %2, align 8, !dbg !11828 | |
| %315 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 3, !dbg !11829 | |
| %316 = load double, double* %315, align 8, !dbg !11829 | |
| %317 = fsub double 0xBFE6A09E667F3BD1, %316, !dbg !11830 | |
| %318 = call double @llvm.fabs.f64(double %317), !dbg !11831 | |
| %319 = load double, double* %2, align 8, !dbg !11832 | |
| %320 = fadd double %319, %318, !dbg !11832 | |
| store double %320, double* %2, align 8, !dbg !11832 | |
| %321 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 0, !dbg !11833 | |
| %322 = load double, double* %321, align 8, !dbg !11833 | |
| %323 = fsub double 0x3FE6A09E667F3BD1, %322, !dbg !11834 | |
| %324 = call double @llvm.fabs.f64(double %323), !dbg !11835 | |
| %325 = load double, double* %2, align 8, !dbg !11836 | |
| %326 = fadd double %325, %324, !dbg !11836 | |
| store double %326, double* %2, align 8, !dbg !11836 | |
| %327 = getelementptr inbounds %struct.llaTrig_t, %struct.llaTrig_t* %5, i32 0, i32 1, !dbg !11837 | |
| %328 = load double, double* %327, align 8, !dbg !11837 | |
| %329 = fsub double 0xBFE6A09E667F3BD1, %328, !dbg !11838 | |
| %330 = call double @llvm.fabs.f64(double %329), !dbg !11839 | |
| %331 = load double, double* %2, align 8, !dbg !11840 | |
| %332 = fadd double %331, %330, !dbg !11840 | |
| store double %332, double* %2, align 8, !dbg !11840 | |
| %333 = load double, double* %2, align 8, !dbg !11841 | |
| %334 = fcmp olt double %333, 1.000000e-04, !dbg !11843 | |
| br i1 %334, label %335, label %336, !dbg !11844 | |
| 335: ; preds = %0 | |
| store i64 1, i64* %1, align 8, !dbg !11845 | |
| br label %337, !dbg !11845 | |
| 336: ; preds = %0 | |
| store i64 0, i64* %1, align 8, !dbg !11846 | |
| br label %337, !dbg !11846 | |
| 337: ; preds = %336, %335 | |
| %338 = load i64, i64* %1, align 8, !dbg !11847 | |
| ret i64 %338, !dbg !11847 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @dcmGet(%struct.Matrixf_t* %0, i32 %1, i32 %2) #0 !dbg !11848 { | |
| %4 = alloca %struct.Matrixf_t*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca i32, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %4, metadata !11861, metadata !DIExpression()), !dbg !11862 | |
| store i32 %1, i32* %5, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !11863, metadata !DIExpression()), !dbg !11864 | |
| store i32 %2, i32* %6, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !11865, metadata !DIExpression()), !dbg !11866 | |
| %7 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !11867 | |
| %8 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %7, i32 0, i32 2, !dbg !11867 | |
| %9 = load float*, float** %8, align 8, !dbg !11867 | |
| %10 = load i32, i32* %5, align 4, !dbg !11867 | |
| %11 = mul i32 %10, 3, !dbg !11867 | |
| %12 = load i32, i32* %6, align 4, !dbg !11867 | |
| %13 = add i32 %11, %12, !dbg !11867 | |
| %14 = zext i32 %13 to i64, !dbg !11867 | |
| %15 = getelementptr inbounds float, float* %9, i64 %14, !dbg !11867 | |
| %16 = load float, float* %15, align 4, !dbg !11867 | |
| ret float %16, !dbg !11868 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @dcmGetFromRawData(float* %0, i32 %1, i32 %2) #0 !dbg !11869 { | |
| %4 = alloca float*, align 8 | |
| %5 = alloca i32, align 4 | |
| %6 = alloca i32, align 4 | |
| store float* %0, float** %4, align 8 | |
| call void @llvm.dbg.declare(metadata float** %4, metadata !11872, metadata !DIExpression()), !dbg !11873 | |
| store i32 %1, i32* %5, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %5, metadata !11874, metadata !DIExpression()), !dbg !11875 | |
| store i32 %2, i32* %6, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !11876, metadata !DIExpression()), !dbg !11877 | |
| %7 = load float*, float** %4, align 8, !dbg !11878 | |
| %8 = load i32, i32* %5, align 4, !dbg !11879 | |
| %9 = mul i32 %8, 3, !dbg !11880 | |
| %10 = load i32, i32* %6, align 4, !dbg !11881 | |
| %11 = add i32 %9, %10, !dbg !11882 | |
| %12 = zext i32 %11 to i64, !dbg !11878 | |
| %13 = getelementptr inbounds float, float* %7, i64 %12, !dbg !11878 | |
| %14 = load float, float* %13, align 4, !dbg !11878 | |
| ret float %14, !dbg !11883 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @dcmCopy(%struct.Matrixf_t* %0, %struct.Matrixf_t* %1) #0 !dbg !11884 { | |
| %3 = alloca %struct.Matrixf_t*, align 8 | |
| %4 = alloca %struct.Matrixf_t*, align 8 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %3, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %3, metadata !11888, metadata !DIExpression()), !dbg !11889 | |
| store %struct.Matrixf_t* %1, %struct.Matrixf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %4, metadata !11890, metadata !DIExpression()), !dbg !11891 | |
| %5 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !11892 | |
| %6 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %5, i32 0, i32 2, !dbg !11893 | |
| %7 = load float*, float** %6, align 8, !dbg !11893 | |
| %8 = bitcast float* %7 to i8*, !dbg !11894 | |
| %9 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !11895 | |
| %10 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 2, !dbg !11896 | |
| %11 = load float*, float** %10, align 8, !dbg !11896 | |
| %12 = bitcast float* %11 to i8*, !dbg !11894 | |
| call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %12, i64 36, i1 false), !dbg !11894 | |
| ret void, !dbg !11897 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @dcmSetIdentity(%struct.Matrixf_t* %0) #0 !dbg !11898 { | |
| %2 = alloca %struct.Matrixf_t*, align 8 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %2, metadata !11901, metadata !DIExpression()), !dbg !11902 | |
| %3 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !11903 | |
| %4 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %3, i32 0, i32 2, !dbg !11903 | |
| %5 = load float*, float** %4, align 8, !dbg !11903 | |
| %6 = getelementptr inbounds float, float* %5, i64 0, !dbg !11903 | |
| store float 1.000000e+00, float* %6, align 4, !dbg !11903 | |
| %7 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !11904 | |
| %8 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %7, i32 0, i32 2, !dbg !11904 | |
| %9 = load float*, float** %8, align 8, !dbg !11904 | |
| %10 = getelementptr inbounds float, float* %9, i64 1, !dbg !11904 | |
| store float 0.000000e+00, float* %10, align 4, !dbg !11904 | |
| %11 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !11905 | |
| %12 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %11, i32 0, i32 2, !dbg !11905 | |
| %13 = load float*, float** %12, align 8, !dbg !11905 | |
| %14 = getelementptr inbounds float, float* %13, i64 2, !dbg !11905 | |
| store float 0.000000e+00, float* %14, align 4, !dbg !11905 | |
| %15 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !11906 | |
| %16 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %15, i32 0, i32 2, !dbg !11906 | |
| %17 = load float*, float** %16, align 8, !dbg !11906 | |
| %18 = getelementptr inbounds float, float* %17, i64 3, !dbg !11906 | |
| store float 0.000000e+00, float* %18, align 4, !dbg !11906 | |
| %19 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !11907 | |
| %20 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %19, i32 0, i32 2, !dbg !11907 | |
| %21 = load float*, float** %20, align 8, !dbg !11907 | |
| %22 = getelementptr inbounds float, float* %21, i64 4, !dbg !11907 | |
| store float 1.000000e+00, float* %22, align 4, !dbg !11907 | |
| %23 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !11908 | |
| %24 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %23, i32 0, i32 2, !dbg !11908 | |
| %25 = load float*, float** %24, align 8, !dbg !11908 | |
| %26 = getelementptr inbounds float, float* %25, i64 5, !dbg !11908 | |
| store float 0.000000e+00, float* %26, align 4, !dbg !11908 | |
| %27 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !11909 | |
| %28 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %27, i32 0, i32 2, !dbg !11909 | |
| %29 = load float*, float** %28, align 8, !dbg !11909 | |
| %30 = getelementptr inbounds float, float* %29, i64 6, !dbg !11909 | |
| store float 0.000000e+00, float* %30, align 4, !dbg !11909 | |
| %31 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !11910 | |
| %32 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %31, i32 0, i32 2, !dbg !11910 | |
| %33 = load float*, float** %32, align 8, !dbg !11910 | |
| %34 = getelementptr inbounds float, float* %33, i64 7, !dbg !11910 | |
| store float 0.000000e+00, float* %34, align 4, !dbg !11910 | |
| %35 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !11911 | |
| %36 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %35, i32 0, i32 2, !dbg !11911 | |
| %37 = load float*, float** %36, align 8, !dbg !11911 | |
| %38 = getelementptr inbounds float, float* %37, i64 8, !dbg !11911 | |
| store float 1.000000e+00, float* %38, align 4, !dbg !11911 | |
| ret void, !dbg !11912 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @dcmAddIdentity(%struct.Matrixf_t* %0) #0 !dbg !11913 { | |
| %2 = alloca %struct.Matrixf_t*, align 8 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %2, metadata !11914, metadata !DIExpression()), !dbg !11915 | |
| %3 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !11916 | |
| %4 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %3, i32 0, i32 2, !dbg !11916 | |
| %5 = load float*, float** %4, align 8, !dbg !11916 | |
| %6 = getelementptr inbounds float, float* %5, i64 0, !dbg !11916 | |
| %7 = load float, float* %6, align 4, !dbg !11917 | |
| %8 = fadd float %7, 1.000000e+00, !dbg !11917 | |
| store float %8, float* %6, align 4, !dbg !11917 | |
| %9 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !11918 | |
| %10 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %9, i32 0, i32 2, !dbg !11918 | |
| %11 = load float*, float** %10, align 8, !dbg !11918 | |
| %12 = getelementptr inbounds float, float* %11, i64 4, !dbg !11918 | |
| %13 = load float, float* %12, align 4, !dbg !11919 | |
| %14 = fadd float %13, 1.000000e+00, !dbg !11919 | |
| store float %14, float* %12, align 4, !dbg !11919 | |
| %15 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !11920 | |
| %16 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %15, i32 0, i32 2, !dbg !11920 | |
| %17 = load float*, float** %16, align 8, !dbg !11920 | |
| %18 = getelementptr inbounds float, float* %17, i64 8, !dbg !11920 | |
| %19 = load float, float* %18, align 4, !dbg !11921 | |
| %20 = fadd float %19, 1.000000e+00, !dbg !11921 | |
| store float %20, float* %18, align 4, !dbg !11921 | |
| ret void, !dbg !11922 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @dcmAddEquals(%struct.Matrixf_t* %0, %struct.Matrixf_t* %1) #0 !dbg !11923 { | |
| %3 = alloca %struct.Matrixf_t*, align 8 | |
| %4 = alloca %struct.Matrixf_t*, align 8 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %3, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %3, metadata !11926, metadata !DIExpression()), !dbg !11927 | |
| store %struct.Matrixf_t* %1, %struct.Matrixf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %4, metadata !11928, metadata !DIExpression()), !dbg !11929 | |
| %5 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !11930 | |
| %6 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %5, i32 0, i32 2, !dbg !11931 | |
| %7 = load float*, float** %6, align 8, !dbg !11931 | |
| %8 = getelementptr inbounds float, float* %7, i64 0, !dbg !11930 | |
| %9 = load float, float* %8, align 4, !dbg !11930 | |
| %10 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !11932 | |
| %11 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %10, i32 0, i32 2, !dbg !11933 | |
| %12 = load float*, float** %11, align 8, !dbg !11933 | |
| %13 = getelementptr inbounds float, float* %12, i64 0, !dbg !11932 | |
| %14 = load float, float* %13, align 4, !dbg !11934 | |
| %15 = fadd float %14, %9, !dbg !11934 | |
| store float %15, float* %13, align 4, !dbg !11934 | |
| %16 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !11935 | |
| %17 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %16, i32 0, i32 2, !dbg !11936 | |
| %18 = load float*, float** %17, align 8, !dbg !11936 | |
| %19 = getelementptr inbounds float, float* %18, i64 1, !dbg !11935 | |
| %20 = load float, float* %19, align 4, !dbg !11935 | |
| %21 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !11937 | |
| %22 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %21, i32 0, i32 2, !dbg !11938 | |
| %23 = load float*, float** %22, align 8, !dbg !11938 | |
| %24 = getelementptr inbounds float, float* %23, i64 1, !dbg !11937 | |
| %25 = load float, float* %24, align 4, !dbg !11939 | |
| %26 = fadd float %25, %20, !dbg !11939 | |
| store float %26, float* %24, align 4, !dbg !11939 | |
| %27 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !11940 | |
| %28 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %27, i32 0, i32 2, !dbg !11941 | |
| %29 = load float*, float** %28, align 8, !dbg !11941 | |
| %30 = getelementptr inbounds float, float* %29, i64 2, !dbg !11940 | |
| %31 = load float, float* %30, align 4, !dbg !11940 | |
| %32 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !11942 | |
| %33 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %32, i32 0, i32 2, !dbg !11943 | |
| %34 = load float*, float** %33, align 8, !dbg !11943 | |
| %35 = getelementptr inbounds float, float* %34, i64 2, !dbg !11942 | |
| %36 = load float, float* %35, align 4, !dbg !11944 | |
| %37 = fadd float %36, %31, !dbg !11944 | |
| store float %37, float* %35, align 4, !dbg !11944 | |
| %38 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !11945 | |
| %39 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %38, i32 0, i32 2, !dbg !11946 | |
| %40 = load float*, float** %39, align 8, !dbg !11946 | |
| %41 = getelementptr inbounds float, float* %40, i64 3, !dbg !11945 | |
| %42 = load float, float* %41, align 4, !dbg !11945 | |
| %43 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !11947 | |
| %44 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %43, i32 0, i32 2, !dbg !11948 | |
| %45 = load float*, float** %44, align 8, !dbg !11948 | |
| %46 = getelementptr inbounds float, float* %45, i64 3, !dbg !11947 | |
| %47 = load float, float* %46, align 4, !dbg !11949 | |
| %48 = fadd float %47, %42, !dbg !11949 | |
| store float %48, float* %46, align 4, !dbg !11949 | |
| %49 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !11950 | |
| %50 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %49, i32 0, i32 2, !dbg !11951 | |
| %51 = load float*, float** %50, align 8, !dbg !11951 | |
| %52 = getelementptr inbounds float, float* %51, i64 4, !dbg !11950 | |
| %53 = load float, float* %52, align 4, !dbg !11950 | |
| %54 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !11952 | |
| %55 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %54, i32 0, i32 2, !dbg !11953 | |
| %56 = load float*, float** %55, align 8, !dbg !11953 | |
| %57 = getelementptr inbounds float, float* %56, i64 4, !dbg !11952 | |
| %58 = load float, float* %57, align 4, !dbg !11954 | |
| %59 = fadd float %58, %53, !dbg !11954 | |
| store float %59, float* %57, align 4, !dbg !11954 | |
| %60 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !11955 | |
| %61 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %60, i32 0, i32 2, !dbg !11956 | |
| %62 = load float*, float** %61, align 8, !dbg !11956 | |
| %63 = getelementptr inbounds float, float* %62, i64 5, !dbg !11955 | |
| %64 = load float, float* %63, align 4, !dbg !11955 | |
| %65 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !11957 | |
| %66 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %65, i32 0, i32 2, !dbg !11958 | |
| %67 = load float*, float** %66, align 8, !dbg !11958 | |
| %68 = getelementptr inbounds float, float* %67, i64 5, !dbg !11957 | |
| %69 = load float, float* %68, align 4, !dbg !11959 | |
| %70 = fadd float %69, %64, !dbg !11959 | |
| store float %70, float* %68, align 4, !dbg !11959 | |
| %71 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !11960 | |
| %72 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %71, i32 0, i32 2, !dbg !11961 | |
| %73 = load float*, float** %72, align 8, !dbg !11961 | |
| %74 = getelementptr inbounds float, float* %73, i64 6, !dbg !11960 | |
| %75 = load float, float* %74, align 4, !dbg !11960 | |
| %76 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !11962 | |
| %77 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %76, i32 0, i32 2, !dbg !11963 | |
| %78 = load float*, float** %77, align 8, !dbg !11963 | |
| %79 = getelementptr inbounds float, float* %78, i64 6, !dbg !11962 | |
| %80 = load float, float* %79, align 4, !dbg !11964 | |
| %81 = fadd float %80, %75, !dbg !11964 | |
| store float %81, float* %79, align 4, !dbg !11964 | |
| %82 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !11965 | |
| %83 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %82, i32 0, i32 2, !dbg !11966 | |
| %84 = load float*, float** %83, align 8, !dbg !11966 | |
| %85 = getelementptr inbounds float, float* %84, i64 7, !dbg !11965 | |
| %86 = load float, float* %85, align 4, !dbg !11965 | |
| %87 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !11967 | |
| %88 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %87, i32 0, i32 2, !dbg !11968 | |
| %89 = load float*, float** %88, align 8, !dbg !11968 | |
| %90 = getelementptr inbounds float, float* %89, i64 7, !dbg !11967 | |
| %91 = load float, float* %90, align 4, !dbg !11969 | |
| %92 = fadd float %91, %86, !dbg !11969 | |
| store float %92, float* %90, align 4, !dbg !11969 | |
| %93 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !11970 | |
| %94 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %93, i32 0, i32 2, !dbg !11971 | |
| %95 = load float*, float** %94, align 8, !dbg !11971 | |
| %96 = getelementptr inbounds float, float* %95, i64 8, !dbg !11970 | |
| %97 = load float, float* %96, align 4, !dbg !11970 | |
| %98 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !11972 | |
| %99 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %98, i32 0, i32 2, !dbg !11973 | |
| %100 = load float*, float** %99, align 8, !dbg !11973 | |
| %101 = getelementptr inbounds float, float* %100, i64 8, !dbg !11972 | |
| %102 = load float, float* %101, align 4, !dbg !11974 | |
| %103 = fadd float %102, %97, !dbg !11974 | |
| store float %103, float* %101, align 4, !dbg !11974 | |
| ret void, !dbg !11975 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @dcmScale(%struct.Matrixf_t* %0, float %1) #0 !dbg !11976 { | |
| %3 = alloca %struct.Matrixf_t*, align 8 | |
| %4 = alloca float, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %3, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %3, metadata !11979, metadata !DIExpression()), !dbg !11980 | |
| store float %1, float* %4, align 4 | |
| call void @llvm.dbg.declare(metadata float* %4, metadata !11981, metadata !DIExpression()), !dbg !11982 | |
| %5 = load float, float* %4, align 4, !dbg !11983 | |
| %6 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !11984 | |
| %7 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %6, i32 0, i32 2, !dbg !11985 | |
| %8 = load float*, float** %7, align 8, !dbg !11985 | |
| %9 = getelementptr inbounds float, float* %8, i64 0, !dbg !11984 | |
| %10 = load float, float* %9, align 4, !dbg !11986 | |
| %11 = fmul float %10, %5, !dbg !11986 | |
| store float %11, float* %9, align 4, !dbg !11986 | |
| %12 = load float, float* %4, align 4, !dbg !11987 | |
| %13 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !11988 | |
| %14 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %13, i32 0, i32 2, !dbg !11989 | |
| %15 = load float*, float** %14, align 8, !dbg !11989 | |
| %16 = getelementptr inbounds float, float* %15, i64 1, !dbg !11988 | |
| %17 = load float, float* %16, align 4, !dbg !11990 | |
| %18 = fmul float %17, %12, !dbg !11990 | |
| store float %18, float* %16, align 4, !dbg !11990 | |
| %19 = load float, float* %4, align 4, !dbg !11991 | |
| %20 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !11992 | |
| %21 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %20, i32 0, i32 2, !dbg !11993 | |
| %22 = load float*, float** %21, align 8, !dbg !11993 | |
| %23 = getelementptr inbounds float, float* %22, i64 2, !dbg !11992 | |
| %24 = load float, float* %23, align 4, !dbg !11994 | |
| %25 = fmul float %24, %19, !dbg !11994 | |
| store float %25, float* %23, align 4, !dbg !11994 | |
| %26 = load float, float* %4, align 4, !dbg !11995 | |
| %27 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !11996 | |
| %28 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %27, i32 0, i32 2, !dbg !11997 | |
| %29 = load float*, float** %28, align 8, !dbg !11997 | |
| %30 = getelementptr inbounds float, float* %29, i64 3, !dbg !11996 | |
| %31 = load float, float* %30, align 4, !dbg !11998 | |
| %32 = fmul float %31, %26, !dbg !11998 | |
| store float %32, float* %30, align 4, !dbg !11998 | |
| %33 = load float, float* %4, align 4, !dbg !11999 | |
| %34 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !12000 | |
| %35 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %34, i32 0, i32 2, !dbg !12001 | |
| %36 = load float*, float** %35, align 8, !dbg !12001 | |
| %37 = getelementptr inbounds float, float* %36, i64 4, !dbg !12000 | |
| %38 = load float, float* %37, align 4, !dbg !12002 | |
| %39 = fmul float %38, %33, !dbg !12002 | |
| store float %39, float* %37, align 4, !dbg !12002 | |
| %40 = load float, float* %4, align 4, !dbg !12003 | |
| %41 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !12004 | |
| %42 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %41, i32 0, i32 2, !dbg !12005 | |
| %43 = load float*, float** %42, align 8, !dbg !12005 | |
| %44 = getelementptr inbounds float, float* %43, i64 5, !dbg !12004 | |
| %45 = load float, float* %44, align 4, !dbg !12006 | |
| %46 = fmul float %45, %40, !dbg !12006 | |
| store float %46, float* %44, align 4, !dbg !12006 | |
| %47 = load float, float* %4, align 4, !dbg !12007 | |
| %48 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !12008 | |
| %49 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %48, i32 0, i32 2, !dbg !12009 | |
| %50 = load float*, float** %49, align 8, !dbg !12009 | |
| %51 = getelementptr inbounds float, float* %50, i64 6, !dbg !12008 | |
| %52 = load float, float* %51, align 4, !dbg !12010 | |
| %53 = fmul float %52, %47, !dbg !12010 | |
| store float %53, float* %51, align 4, !dbg !12010 | |
| %54 = load float, float* %4, align 4, !dbg !12011 | |
| %55 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !12012 | |
| %56 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %55, i32 0, i32 2, !dbg !12013 | |
| %57 = load float*, float** %56, align 8, !dbg !12013 | |
| %58 = getelementptr inbounds float, float* %57, i64 7, !dbg !12012 | |
| %59 = load float, float* %58, align 4, !dbg !12014 | |
| %60 = fmul float %59, %54, !dbg !12014 | |
| store float %60, float* %58, align 4, !dbg !12014 | |
| %61 = load float, float* %4, align 4, !dbg !12015 | |
| %62 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !12016 | |
| %63 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %62, i32 0, i32 2, !dbg !12017 | |
| %64 = load float*, float** %63, align 8, !dbg !12017 | |
| %65 = getelementptr inbounds float, float* %64, i64 8, !dbg !12016 | |
| %66 = load float, float* %65, align 4, !dbg !12018 | |
| %67 = fmul float %66, %61, !dbg !12018 | |
| store float %67, float* %65, align 4, !dbg !12018 | |
| ret void, !dbg !12019 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @dcmSet(%struct.Matrixf_t* %0, i32 %1, i32 %2, float %3) #0 !dbg !12020 { | |
| %5 = alloca %struct.Matrixf_t*, align 8 | |
| %6 = alloca i32, align 4 | |
| %7 = alloca i32, align 4 | |
| %8 = alloca float, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %5, metadata !12023, metadata !DIExpression()), !dbg !12024 | |
| store i32 %1, i32* %6, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %6, metadata !12025, metadata !DIExpression()), !dbg !12026 | |
| store i32 %2, i32* %7, align 4 | |
| call void @llvm.dbg.declare(metadata i32* %7, metadata !12027, metadata !DIExpression()), !dbg !12028 | |
| store float %3, float* %8, align 4 | |
| call void @llvm.dbg.declare(metadata float* %8, metadata !12029, metadata !DIExpression()), !dbg !12030 | |
| %9 = load float, float* %8, align 4, !dbg !12031 | |
| %10 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !12031 | |
| %11 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %10, i32 0, i32 2, !dbg !12031 | |
| %12 = load float*, float** %11, align 8, !dbg !12031 | |
| %13 = load i32, i32* %6, align 4, !dbg !12031 | |
| %14 = mul i32 %13, 3, !dbg !12031 | |
| %15 = load i32, i32* %7, align 4, !dbg !12031 | |
| %16 = add i32 %14, %15, !dbg !12031 | |
| %17 = zext i32 %16 to i64, !dbg !12031 | |
| %18 = getelementptr inbounds float, float* %12, i64 %17, !dbg !12031 | |
| store float %9, float* %18, align 4, !dbg !12031 | |
| ret void, !dbg !12032 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local %struct.Matrixf_t* @dcmAllocate() #0 !dbg !12033 { | |
| %1 = alloca %struct.Matrixf_t*, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %1, metadata !12036, metadata !DIExpression()), !dbg !12037 | |
| %2 = call %struct.Matrixf_t* @matrixAllocatef(i32 3, i32 3), !dbg !12038 | |
| store %struct.Matrixf_t* %2, %struct.Matrixf_t** %1, align 8, !dbg !12037 | |
| %3 = load %struct.Matrixf_t*, %struct.Matrixf_t** %1, align 8, !dbg !12039 | |
| %4 = icmp ne %struct.Matrixf_t* %3, null, !dbg !12041 | |
| br i1 %4, label %5, label %18, !dbg !12042 | |
| 5: ; preds = %0 | |
| %6 = load %struct.Matrixf_t*, %struct.Matrixf_t** %1, align 8, !dbg !12043 | |
| %7 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %6, i32 0, i32 2, !dbg !12043 | |
| %8 = load float*, float** %7, align 8, !dbg !12043 | |
| %9 = getelementptr inbounds float, float* %8, i64 0, !dbg !12043 | |
| store float 1.000000e+00, float* %9, align 4, !dbg !12043 | |
| %10 = load %struct.Matrixf_t*, %struct.Matrixf_t** %1, align 8, !dbg !12045 | |
| %11 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %10, i32 0, i32 2, !dbg !12045 | |
| %12 = load float*, float** %11, align 8, !dbg !12045 | |
| %13 = getelementptr inbounds float, float* %12, i64 4, !dbg !12045 | |
| store float 1.000000e+00, float* %13, align 4, !dbg !12045 | |
| %14 = load %struct.Matrixf_t*, %struct.Matrixf_t** %1, align 8, !dbg !12046 | |
| %15 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %14, i32 0, i32 2, !dbg !12046 | |
| %16 = load float*, float** %15, align 8, !dbg !12046 | |
| %17 = getelementptr inbounds float, float* %16, i64 8, !dbg !12046 | |
| store float 1.000000e+00, float* %17, align 4, !dbg !12046 | |
| br label %18, !dbg !12047 | |
| 18: ; preds = %5, %0 | |
| %19 = load %struct.Matrixf_t*, %struct.Matrixf_t** %1, align 8, !dbg !12048 | |
| ret %struct.Matrixf_t* %19, !dbg !12049 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @setDCMBasedOnRoll(%struct.Matrixf_t* %0, float %1) #0 !dbg !12050 { | |
| %3 = alloca %struct.Matrixf_t*, align 8 | |
| %4 = alloca float, align 4 | |
| %5 = alloca float, align 4 | |
| %6 = alloca float, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %3, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %3, metadata !12051, metadata !DIExpression()), !dbg !12052 | |
| store float %1, float* %4, align 4 | |
| call void @llvm.dbg.declare(metadata float* %4, metadata !12053, metadata !DIExpression()), !dbg !12054 | |
| call void @llvm.dbg.declare(metadata float* %5, metadata !12055, metadata !DIExpression()), !dbg !12056 | |
| %7 = load float, float* %4, align 4, !dbg !12057 | |
| %8 = call float @sinf(float %7) #7, !dbg !12058 | |
| store float %8, float* %5, align 4, !dbg !12056 | |
| call void @llvm.dbg.declare(metadata float* %6, metadata !12059, metadata !DIExpression()), !dbg !12060 | |
| %9 = load float, float* %4, align 4, !dbg !12061 | |
| %10 = call float @cosf(float %9) #7, !dbg !12062 | |
| store float %10, float* %6, align 4, !dbg !12060 | |
| %11 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !12063 | |
| call void @dcmSetIdentity(%struct.Matrixf_t* %11), !dbg !12064 | |
| %12 = load float, float* %6, align 4, !dbg !12065 | |
| %13 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !12065 | |
| %14 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %13, i32 0, i32 2, !dbg !12065 | |
| %15 = load float*, float** %14, align 8, !dbg !12065 | |
| %16 = getelementptr inbounds float, float* %15, i64 4, !dbg !12065 | |
| store float %12, float* %16, align 4, !dbg !12065 | |
| %17 = load float, float* %6, align 4, !dbg !12066 | |
| %18 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !12066 | |
| %19 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %18, i32 0, i32 2, !dbg !12066 | |
| %20 = load float*, float** %19, align 8, !dbg !12066 | |
| %21 = getelementptr inbounds float, float* %20, i64 8, !dbg !12066 | |
| store float %17, float* %21, align 4, !dbg !12066 | |
| %22 = load float, float* %5, align 4, !dbg !12067 | |
| %23 = fneg float %22, !dbg !12067 | |
| %24 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !12067 | |
| %25 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %24, i32 0, i32 2, !dbg !12067 | |
| %26 = load float*, float** %25, align 8, !dbg !12067 | |
| %27 = getelementptr inbounds float, float* %26, i64 5, !dbg !12067 | |
| store float %23, float* %27, align 4, !dbg !12067 | |
| %28 = load float, float* %5, align 4, !dbg !12068 | |
| %29 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !12068 | |
| %30 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %29, i32 0, i32 2, !dbg !12068 | |
| %31 = load float*, float** %30, align 8, !dbg !12068 | |
| %32 = getelementptr inbounds float, float* %31, i64 7, !dbg !12068 | |
| store float %28, float* %32, align 4, !dbg !12068 | |
| ret void, !dbg !12069 | |
| } | |
| ; Function Attrs: nounwind | |
| declare dso_local float @sinf(float) #5 | |
| ; Function Attrs: nounwind | |
| declare dso_local float @cosf(float) #5 | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @setDCMBasedOnPitch(%struct.Matrixf_t* %0, float %1) #0 !dbg !12070 { | |
| %3 = alloca %struct.Matrixf_t*, align 8 | |
| %4 = alloca float, align 4 | |
| %5 = alloca float, align 4 | |
| %6 = alloca float, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %3, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %3, metadata !12071, metadata !DIExpression()), !dbg !12072 | |
| store float %1, float* %4, align 4 | |
| call void @llvm.dbg.declare(metadata float* %4, metadata !12073, metadata !DIExpression()), !dbg !12074 | |
| call void @llvm.dbg.declare(metadata float* %5, metadata !12075, metadata !DIExpression()), !dbg !12076 | |
| %7 = load float, float* %4, align 4, !dbg !12077 | |
| %8 = call float @sinf(float %7) #7, !dbg !12078 | |
| store float %8, float* %5, align 4, !dbg !12076 | |
| call void @llvm.dbg.declare(metadata float* %6, metadata !12079, metadata !DIExpression()), !dbg !12080 | |
| %9 = load float, float* %4, align 4, !dbg !12081 | |
| %10 = call float @cosf(float %9) #7, !dbg !12082 | |
| store float %10, float* %6, align 4, !dbg !12080 | |
| %11 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !12083 | |
| call void @dcmSetIdentity(%struct.Matrixf_t* %11), !dbg !12084 | |
| %12 = load float, float* %6, align 4, !dbg !12085 | |
| %13 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !12085 | |
| %14 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %13, i32 0, i32 2, !dbg !12085 | |
| %15 = load float*, float** %14, align 8, !dbg !12085 | |
| %16 = getelementptr inbounds float, float* %15, i64 0, !dbg !12085 | |
| store float %12, float* %16, align 4, !dbg !12085 | |
| %17 = load float, float* %6, align 4, !dbg !12086 | |
| %18 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !12086 | |
| %19 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %18, i32 0, i32 2, !dbg !12086 | |
| %20 = load float*, float** %19, align 8, !dbg !12086 | |
| %21 = getelementptr inbounds float, float* %20, i64 8, !dbg !12086 | |
| store float %17, float* %21, align 4, !dbg !12086 | |
| %22 = load float, float* %5, align 4, !dbg !12087 | |
| %23 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !12087 | |
| %24 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %23, i32 0, i32 2, !dbg !12087 | |
| %25 = load float*, float** %24, align 8, !dbg !12087 | |
| %26 = getelementptr inbounds float, float* %25, i64 2, !dbg !12087 | |
| store float %22, float* %26, align 4, !dbg !12087 | |
| %27 = load float, float* %5, align 4, !dbg !12088 | |
| %28 = fneg float %27, !dbg !12088 | |
| %29 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !12088 | |
| %30 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %29, i32 0, i32 2, !dbg !12088 | |
| %31 = load float*, float** %30, align 8, !dbg !12088 | |
| %32 = getelementptr inbounds float, float* %31, i64 6, !dbg !12088 | |
| store float %28, float* %32, align 4, !dbg !12088 | |
| ret void, !dbg !12089 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @setDCMBasedOnYaw(%struct.Matrixf_t* %0, float %1) #0 !dbg !12090 { | |
| %3 = alloca %struct.Matrixf_t*, align 8 | |
| %4 = alloca float, align 4 | |
| %5 = alloca float, align 4 | |
| %6 = alloca float, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %3, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %3, metadata !12091, metadata !DIExpression()), !dbg !12092 | |
| store float %1, float* %4, align 4 | |
| call void @llvm.dbg.declare(metadata float* %4, metadata !12093, metadata !DIExpression()), !dbg !12094 | |
| call void @llvm.dbg.declare(metadata float* %5, metadata !12095, metadata !DIExpression()), !dbg !12096 | |
| %7 = load float, float* %4, align 4, !dbg !12097 | |
| %8 = call float @sinf(float %7) #7, !dbg !12098 | |
| store float %8, float* %5, align 4, !dbg !12096 | |
| call void @llvm.dbg.declare(metadata float* %6, metadata !12099, metadata !DIExpression()), !dbg !12100 | |
| %9 = load float, float* %4, align 4, !dbg !12101 | |
| %10 = call float @cosf(float %9) #7, !dbg !12102 | |
| store float %10, float* %6, align 4, !dbg !12100 | |
| %11 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !12103 | |
| call void @dcmSetIdentity(%struct.Matrixf_t* %11), !dbg !12104 | |
| %12 = load float, float* %6, align 4, !dbg !12105 | |
| %13 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !12105 | |
| %14 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %13, i32 0, i32 2, !dbg !12105 | |
| %15 = load float*, float** %14, align 8, !dbg !12105 | |
| %16 = getelementptr inbounds float, float* %15, i64 0, !dbg !12105 | |
| store float %12, float* %16, align 4, !dbg !12105 | |
| %17 = load float, float* %6, align 4, !dbg !12106 | |
| %18 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !12106 | |
| %19 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %18, i32 0, i32 2, !dbg !12106 | |
| %20 = load float*, float** %19, align 8, !dbg !12106 | |
| %21 = getelementptr inbounds float, float* %20, i64 4, !dbg !12106 | |
| store float %17, float* %21, align 4, !dbg !12106 | |
| %22 = load float, float* %5, align 4, !dbg !12107 | |
| %23 = fneg float %22, !dbg !12107 | |
| %24 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !12107 | |
| %25 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %24, i32 0, i32 2, !dbg !12107 | |
| %26 = load float*, float** %25, align 8, !dbg !12107 | |
| %27 = getelementptr inbounds float, float* %26, i64 1, !dbg !12107 | |
| store float %23, float* %27, align 4, !dbg !12107 | |
| %28 = load float, float* %5, align 4, !dbg !12108 | |
| %29 = load %struct.Matrixf_t*, %struct.Matrixf_t** %3, align 8, !dbg !12108 | |
| %30 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %29, i32 0, i32 2, !dbg !12108 | |
| %31 = load float*, float** %30, align 8, !dbg !12108 | |
| %32 = getelementptr inbounds float, float* %31, i64 3, !dbg !12108 | |
| store float %28, float* %32, align 4, !dbg !12108 | |
| ret void, !dbg !12109 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @setDCMBasedOnEuler(%struct.Matrixf_t* %0, float %1, float %2, float %3) #0 !dbg !12110 { | |
| %5 = alloca %struct.Matrixf_t*, align 8 | |
| %6 = alloca float, align 4 | |
| %7 = alloca float, align 4 | |
| %8 = alloca float, align 4 | |
| %9 = alloca float, align 4 | |
| %10 = alloca float, align 4 | |
| %11 = alloca float, align 4 | |
| %12 = alloca float, align 4 | |
| %13 = alloca float, align 4 | |
| %14 = alloca float, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %5, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %5, metadata !12113, metadata !DIExpression()), !dbg !12114 | |
| store float %1, float* %6, align 4 | |
| call void @llvm.dbg.declare(metadata float* %6, metadata !12115, metadata !DIExpression()), !dbg !12116 | |
| store float %2, float* %7, align 4 | |
| call void @llvm.dbg.declare(metadata float* %7, metadata !12117, metadata !DIExpression()), !dbg !12118 | |
| store float %3, float* %8, align 4 | |
| call void @llvm.dbg.declare(metadata float* %8, metadata !12119, metadata !DIExpression()), !dbg !12120 | |
| call void @llvm.dbg.declare(metadata float* %9, metadata !12121, metadata !DIExpression()), !dbg !12122 | |
| %15 = load float, float* %8, align 4, !dbg !12123 | |
| %16 = call float @cosf(float %15) #7, !dbg !12124 | |
| store float %16, float* %9, align 4, !dbg !12122 | |
| call void @llvm.dbg.declare(metadata float* %10, metadata !12125, metadata !DIExpression()), !dbg !12126 | |
| %17 = load float, float* %8, align 4, !dbg !12127 | |
| %18 = call float @sinf(float %17) #7, !dbg !12128 | |
| store float %18, float* %10, align 4, !dbg !12126 | |
| call void @llvm.dbg.declare(metadata float* %11, metadata !12129, metadata !DIExpression()), !dbg !12130 | |
| %19 = load float, float* %7, align 4, !dbg !12131 | |
| %20 = call float @cosf(float %19) #7, !dbg !12132 | |
| store float %20, float* %11, align 4, !dbg !12130 | |
| call void @llvm.dbg.declare(metadata float* %12, metadata !12133, metadata !DIExpression()), !dbg !12134 | |
| %21 = load float, float* %7, align 4, !dbg !12135 | |
| %22 = call float @sinf(float %21) #7, !dbg !12136 | |
| store float %22, float* %12, align 4, !dbg !12134 | |
| call void @llvm.dbg.declare(metadata float* %13, metadata !12137, metadata !DIExpression()), !dbg !12138 | |
| %23 = load float, float* %6, align 4, !dbg !12139 | |
| %24 = call float @cosf(float %23) #7, !dbg !12140 | |
| store float %24, float* %13, align 4, !dbg !12138 | |
| call void @llvm.dbg.declare(metadata float* %14, metadata !12141, metadata !DIExpression()), !dbg !12142 | |
| %25 = load float, float* %6, align 4, !dbg !12143 | |
| %26 = call float @sinf(float %25) #7, !dbg !12144 | |
| store float %26, float* %14, align 4, !dbg !12142 | |
| %27 = load float, float* %11, align 4, !dbg !12145 | |
| %28 = load float, float* %13, align 4, !dbg !12145 | |
| %29 = fmul float %27, %28, !dbg !12145 | |
| %30 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !12145 | |
| %31 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %30, i32 0, i32 2, !dbg !12145 | |
| %32 = load float*, float** %31, align 8, !dbg !12145 | |
| %33 = getelementptr inbounds float, float* %32, i64 0, !dbg !12145 | |
| store float %29, float* %33, align 4, !dbg !12145 | |
| %34 = load float, float* %10, align 4, !dbg !12146 | |
| %35 = load float, float* %12, align 4, !dbg !12146 | |
| %36 = fmul float %34, %35, !dbg !12146 | |
| %37 = load float, float* %13, align 4, !dbg !12146 | |
| %38 = fmul float %36, %37, !dbg !12146 | |
| %39 = load float, float* %9, align 4, !dbg !12146 | |
| %40 = load float, float* %14, align 4, !dbg !12146 | |
| %41 = fmul float %39, %40, !dbg !12146 | |
| %42 = fsub float %38, %41, !dbg !12146 | |
| %43 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !12146 | |
| %44 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %43, i32 0, i32 2, !dbg !12146 | |
| %45 = load float*, float** %44, align 8, !dbg !12146 | |
| %46 = getelementptr inbounds float, float* %45, i64 1, !dbg !12146 | |
| store float %42, float* %46, align 4, !dbg !12146 | |
| %47 = load float, float* %9, align 4, !dbg !12147 | |
| %48 = load float, float* %12, align 4, !dbg !12147 | |
| %49 = fmul float %47, %48, !dbg !12147 | |
| %50 = load float, float* %13, align 4, !dbg !12147 | |
| %51 = fmul float %49, %50, !dbg !12147 | |
| %52 = load float, float* %10, align 4, !dbg !12147 | |
| %53 = load float, float* %14, align 4, !dbg !12147 | |
| %54 = fmul float %52, %53, !dbg !12147 | |
| %55 = fadd float %51, %54, !dbg !12147 | |
| %56 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !12147 | |
| %57 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %56, i32 0, i32 2, !dbg !12147 | |
| %58 = load float*, float** %57, align 8, !dbg !12147 | |
| %59 = getelementptr inbounds float, float* %58, i64 2, !dbg !12147 | |
| store float %55, float* %59, align 4, !dbg !12147 | |
| %60 = load float, float* %11, align 4, !dbg !12148 | |
| %61 = load float, float* %14, align 4, !dbg !12148 | |
| %62 = fmul float %60, %61, !dbg !12148 | |
| %63 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !12148 | |
| %64 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %63, i32 0, i32 2, !dbg !12148 | |
| %65 = load float*, float** %64, align 8, !dbg !12148 | |
| %66 = getelementptr inbounds float, float* %65, i64 3, !dbg !12148 | |
| store float %62, float* %66, align 4, !dbg !12148 | |
| %67 = load float, float* %10, align 4, !dbg !12149 | |
| %68 = load float, float* %12, align 4, !dbg !12149 | |
| %69 = fmul float %67, %68, !dbg !12149 | |
| %70 = load float, float* %14, align 4, !dbg !12149 | |
| %71 = fmul float %69, %70, !dbg !12149 | |
| %72 = load float, float* %9, align 4, !dbg !12149 | |
| %73 = load float, float* %13, align 4, !dbg !12149 | |
| %74 = fmul float %72, %73, !dbg !12149 | |
| %75 = fadd float %71, %74, !dbg !12149 | |
| %76 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !12149 | |
| %77 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %76, i32 0, i32 2, !dbg !12149 | |
| %78 = load float*, float** %77, align 8, !dbg !12149 | |
| %79 = getelementptr inbounds float, float* %78, i64 4, !dbg !12149 | |
| store float %75, float* %79, align 4, !dbg !12149 | |
| %80 = load float, float* %9, align 4, !dbg !12150 | |
| %81 = load float, float* %12, align 4, !dbg !12150 | |
| %82 = fmul float %80, %81, !dbg !12150 | |
| %83 = load float, float* %14, align 4, !dbg !12150 | |
| %84 = fmul float %82, %83, !dbg !12150 | |
| %85 = load float, float* %10, align 4, !dbg !12150 | |
| %86 = load float, float* %13, align 4, !dbg !12150 | |
| %87 = fmul float %85, %86, !dbg !12150 | |
| %88 = fsub float %84, %87, !dbg !12150 | |
| %89 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !12150 | |
| %90 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %89, i32 0, i32 2, !dbg !12150 | |
| %91 = load float*, float** %90, align 8, !dbg !12150 | |
| %92 = getelementptr inbounds float, float* %91, i64 5, !dbg !12150 | |
| store float %88, float* %92, align 4, !dbg !12150 | |
| %93 = load float, float* %12, align 4, !dbg !12151 | |
| %94 = fmul float -1.000000e+00, %93, !dbg !12151 | |
| %95 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !12151 | |
| %96 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %95, i32 0, i32 2, !dbg !12151 | |
| %97 = load float*, float** %96, align 8, !dbg !12151 | |
| %98 = getelementptr inbounds float, float* %97, i64 6, !dbg !12151 | |
| store float %94, float* %98, align 4, !dbg !12151 | |
| %99 = load float, float* %10, align 4, !dbg !12152 | |
| %100 = load float, float* %11, align 4, !dbg !12152 | |
| %101 = fmul float %99, %100, !dbg !12152 | |
| %102 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !12152 | |
| %103 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %102, i32 0, i32 2, !dbg !12152 | |
| %104 = load float*, float** %103, align 8, !dbg !12152 | |
| %105 = getelementptr inbounds float, float* %104, i64 7, !dbg !12152 | |
| store float %101, float* %105, align 4, !dbg !12152 | |
| %106 = load float, float* %9, align 4, !dbg !12153 | |
| %107 = load float, float* %11, align 4, !dbg !12153 | |
| %108 = fmul float %106, %107, !dbg !12153 | |
| %109 = load %struct.Matrixf_t*, %struct.Matrixf_t** %5, align 8, !dbg !12153 | |
| %110 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %109, i32 0, i32 2, !dbg !12153 | |
| %111 = load float*, float** %110, align 8, !dbg !12153 | |
| %112 = getelementptr inbounds float, float* %111, i64 8, !dbg !12153 | |
| store float %108, float* %112, align 4, !dbg !12153 | |
| ret void, !dbg !12154 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @setDCMBasedOnPanTilt(%struct.Matrixf_t* %0, float %1, float %2) #0 !dbg !12155 { | |
| %4 = alloca %struct.Matrixf_t*, align 8 | |
| %5 = alloca float, align 4 | |
| %6 = alloca float, align 4 | |
| %7 = alloca float, align 4 | |
| %8 = alloca float, align 4 | |
| %9 = alloca float, align 4 | |
| %10 = alloca float, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %4, metadata !12158, metadata !DIExpression()), !dbg !12159 | |
| store float %1, float* %5, align 4 | |
| call void @llvm.dbg.declare(metadata float* %5, metadata !12160, metadata !DIExpression()), !dbg !12161 | |
| store float %2, float* %6, align 4 | |
| call void @llvm.dbg.declare(metadata float* %6, metadata !12162, metadata !DIExpression()), !dbg !12163 | |
| call void @llvm.dbg.declare(metadata float* %7, metadata !12164, metadata !DIExpression()), !dbg !12165 | |
| %11 = load float, float* %6, align 4, !dbg !12166 | |
| %12 = call float @cosf(float %11) #7, !dbg !12167 | |
| store float %12, float* %7, align 4, !dbg !12165 | |
| call void @llvm.dbg.declare(metadata float* %8, metadata !12168, metadata !DIExpression()), !dbg !12169 | |
| %13 = load float, float* %6, align 4, !dbg !12170 | |
| %14 = call float @sinf(float %13) #7, !dbg !12171 | |
| store float %14, float* %8, align 4, !dbg !12169 | |
| call void @llvm.dbg.declare(metadata float* %9, metadata !12172, metadata !DIExpression()), !dbg !12173 | |
| %15 = load float, float* %5, align 4, !dbg !12174 | |
| %16 = call float @cosf(float %15) #7, !dbg !12175 | |
| store float %16, float* %9, align 4, !dbg !12173 | |
| call void @llvm.dbg.declare(metadata float* %10, metadata !12176, metadata !DIExpression()), !dbg !12177 | |
| %17 = load float, float* %5, align 4, !dbg !12178 | |
| %18 = call float @sinf(float %17) #7, !dbg !12179 | |
| store float %18, float* %10, align 4, !dbg !12177 | |
| %19 = load float, float* %7, align 4, !dbg !12180 | |
| %20 = load float, float* %9, align 4, !dbg !12180 | |
| %21 = fmul float %19, %20, !dbg !12180 | |
| %22 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !12180 | |
| %23 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %22, i32 0, i32 2, !dbg !12180 | |
| %24 = load float*, float** %23, align 8, !dbg !12180 | |
| %25 = getelementptr inbounds float, float* %24, i64 0, !dbg !12180 | |
| store float %21, float* %25, align 4, !dbg !12180 | |
| %26 = load float, float* %10, align 4, !dbg !12181 | |
| %27 = fmul float -1.000000e+00, %26, !dbg !12181 | |
| %28 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !12181 | |
| %29 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %28, i32 0, i32 2, !dbg !12181 | |
| %30 = load float*, float** %29, align 8, !dbg !12181 | |
| %31 = getelementptr inbounds float, float* %30, i64 1, !dbg !12181 | |
| store float %27, float* %31, align 4, !dbg !12181 | |
| %32 = load float, float* %8, align 4, !dbg !12182 | |
| %33 = load float, float* %9, align 4, !dbg !12182 | |
| %34 = fmul float %32, %33, !dbg !12182 | |
| %35 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !12182 | |
| %36 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %35, i32 0, i32 2, !dbg !12182 | |
| %37 = load float*, float** %36, align 8, !dbg !12182 | |
| %38 = getelementptr inbounds float, float* %37, i64 2, !dbg !12182 | |
| store float %34, float* %38, align 4, !dbg !12182 | |
| %39 = load float, float* %7, align 4, !dbg !12183 | |
| %40 = load float, float* %10, align 4, !dbg !12183 | |
| %41 = fmul float %39, %40, !dbg !12183 | |
| %42 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !12183 | |
| %43 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %42, i32 0, i32 2, !dbg !12183 | |
| %44 = load float*, float** %43, align 8, !dbg !12183 | |
| %45 = getelementptr inbounds float, float* %44, i64 3, !dbg !12183 | |
| store float %41, float* %45, align 4, !dbg !12183 | |
| %46 = load float, float* %9, align 4, !dbg !12184 | |
| %47 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !12184 | |
| %48 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %47, i32 0, i32 2, !dbg !12184 | |
| %49 = load float*, float** %48, align 8, !dbg !12184 | |
| %50 = getelementptr inbounds float, float* %49, i64 4, !dbg !12184 | |
| store float %46, float* %50, align 4, !dbg !12184 | |
| %51 = load float, float* %8, align 4, !dbg !12185 | |
| %52 = load float, float* %10, align 4, !dbg !12185 | |
| %53 = fmul float %51, %52, !dbg !12185 | |
| %54 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !12185 | |
| %55 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %54, i32 0, i32 2, !dbg !12185 | |
| %56 = load float*, float** %55, align 8, !dbg !12185 | |
| %57 = getelementptr inbounds float, float* %56, i64 5, !dbg !12185 | |
| store float %53, float* %57, align 4, !dbg !12185 | |
| %58 = load float, float* %8, align 4, !dbg !12186 | |
| %59 = fmul float -1.000000e+00, %58, !dbg !12186 | |
| %60 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !12186 | |
| %61 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %60, i32 0, i32 2, !dbg !12186 | |
| %62 = load float*, float** %61, align 8, !dbg !12186 | |
| %63 = getelementptr inbounds float, float* %62, i64 6, !dbg !12186 | |
| store float %59, float* %63, align 4, !dbg !12186 | |
| %64 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !12187 | |
| %65 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %64, i32 0, i32 2, !dbg !12187 | |
| %66 = load float*, float** %65, align 8, !dbg !12187 | |
| %67 = getelementptr inbounds float, float* %66, i64 7, !dbg !12187 | |
| store float 0.000000e+00, float* %67, align 4, !dbg !12187 | |
| %68 = load float, float* %7, align 4, !dbg !12188 | |
| %69 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !12188 | |
| %70 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %69, i32 0, i32 2, !dbg !12188 | |
| %71 = load float*, float** %70, align 8, !dbg !12188 | |
| %72 = getelementptr inbounds float, float* %71, i64 8, !dbg !12188 | |
| store float %68, float* %72, align 4, !dbg !12188 | |
| ret void, !dbg !12189 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @dcmYaw(%struct.Matrixf_t* %0) #0 !dbg !12190 { | |
| %2 = alloca %struct.Matrixf_t*, align 8 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %2, metadata !12193, metadata !DIExpression()), !dbg !12194 | |
| %3 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !12195 | |
| %4 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %3, i32 0, i32 2, !dbg !12195 | |
| %5 = load float*, float** %4, align 8, !dbg !12195 | |
| %6 = getelementptr inbounds float, float* %5, i64 3, !dbg !12195 | |
| %7 = load float, float* %6, align 4, !dbg !12195 | |
| %8 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !12196 | |
| %9 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %8, i32 0, i32 2, !dbg !12196 | |
| %10 = load float*, float** %9, align 8, !dbg !12196 | |
| %11 = getelementptr inbounds float, float* %10, i64 0, !dbg !12196 | |
| %12 = load float, float* %11, align 4, !dbg !12196 | |
| %13 = call float @atan2f(float %7, float %12) #7, !dbg !12197 | |
| ret float %13, !dbg !12198 | |
| } | |
| ; Function Attrs: nounwind | |
| declare dso_local float @atan2f(float, float) #5 | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @dcmPitch(%struct.Matrixf_t* %0) #0 !dbg !12199 { | |
| %2 = alloca %struct.Matrixf_t*, align 8 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %2, metadata !12200, metadata !DIExpression()), !dbg !12201 | |
| %3 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !12202 | |
| %4 = call float @dcmSinPitch(%struct.Matrixf_t* %3), !dbg !12203 | |
| %5 = call float @asinf(float %4) #7, !dbg !12204 | |
| ret float %5, !dbg !12205 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @dcmSinPitch(%struct.Matrixf_t* %0) #0 !dbg !12206 { | |
| %2 = alloca %struct.Matrixf_t*, align 8 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %2, metadata !12207, metadata !DIExpression()), !dbg !12208 | |
| %3 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !12209 | |
| %4 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %3, i32 0, i32 2, !dbg !12209 | |
| %5 = load float*, float** %4, align 8, !dbg !12209 | |
| %6 = getelementptr inbounds float, float* %5, i64 6, !dbg !12209 | |
| %7 = load float, float* %6, align 4, !dbg !12209 | |
| %8 = fmul float -1.000000e+00, %7, !dbg !12209 | |
| %9 = fcmp olt float %8, 1.000000e+00, !dbg !12209 | |
| br i1 %9, label %10, label %17, !dbg !12209 | |
| 10: ; preds = %1 | |
| %11 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !12209 | |
| %12 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %11, i32 0, i32 2, !dbg !12209 | |
| %13 = load float*, float** %12, align 8, !dbg !12209 | |
| %14 = getelementptr inbounds float, float* %13, i64 6, !dbg !12209 | |
| %15 = load float, float* %14, align 4, !dbg !12209 | |
| %16 = fmul float -1.000000e+00, %15, !dbg !12209 | |
| br label %18, !dbg !12209 | |
| 17: ; preds = %1 | |
| br label %18, !dbg !12209 | |
| 18: ; preds = %17, %10 | |
| %19 = phi float [ %16, %10 ], [ 1.000000e+00, %17 ], !dbg !12209 | |
| %20 = fcmp ogt float -1.000000e+00, %19, !dbg !12209 | |
| br i1 %20, label %21, label %22, !dbg !12209 | |
| 21: ; preds = %18 | |
| br label %40, !dbg !12209 | |
| 22: ; preds = %18 | |
| %23 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !12209 | |
| %24 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %23, i32 0, i32 2, !dbg !12209 | |
| %25 = load float*, float** %24, align 8, !dbg !12209 | |
| %26 = getelementptr inbounds float, float* %25, i64 6, !dbg !12209 | |
| %27 = load float, float* %26, align 4, !dbg !12209 | |
| %28 = fmul float -1.000000e+00, %27, !dbg !12209 | |
| %29 = fcmp olt float %28, 1.000000e+00, !dbg !12209 | |
| br i1 %29, label %30, label %37, !dbg !12209 | |
| 30: ; preds = %22 | |
| %31 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !12209 | |
| %32 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %31, i32 0, i32 2, !dbg !12209 | |
| %33 = load float*, float** %32, align 8, !dbg !12209 | |
| %34 = getelementptr inbounds float, float* %33, i64 6, !dbg !12209 | |
| %35 = load float, float* %34, align 4, !dbg !12209 | |
| %36 = fmul float -1.000000e+00, %35, !dbg !12209 | |
| br label %38, !dbg !12209 | |
| 37: ; preds = %22 | |
| br label %38, !dbg !12209 | |
| 38: ; preds = %37, %30 | |
| %39 = phi float [ %36, %30 ], [ 1.000000e+00, %37 ], !dbg !12209 | |
| br label %40, !dbg !12209 | |
| 40: ; preds = %38, %21 | |
| %41 = phi float [ -1.000000e+00, %21 ], [ %39, %38 ], !dbg !12209 | |
| ret float %41, !dbg !12210 | |
| } | |
| ; Function Attrs: nounwind | |
| declare dso_local float @asinf(float) #5 | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @dcmCosPitch(%struct.Matrixf_t* %0) #0 !dbg !12211 { | |
| %2 = alloca %struct.Matrixf_t*, align 8 | |
| %3 = alloca float, align 4 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %2, metadata !12212, metadata !DIExpression()), !dbg !12213 | |
| call void @llvm.dbg.declare(metadata float* %3, metadata !12214, metadata !DIExpression()), !dbg !12215 | |
| %4 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !12216 | |
| %5 = call float @dcmSinPitch(%struct.Matrixf_t* %4), !dbg !12217 | |
| store float %5, float* %3, align 4, !dbg !12215 | |
| %6 = load float, float* %3, align 4, !dbg !12218 | |
| %7 = load float, float* %3, align 4, !dbg !12219 | |
| %8 = fmul float %6, %7, !dbg !12220 | |
| %9 = fsub float 1.000000e+00, %8, !dbg !12221 | |
| %10 = call float @sqrtf(float %9) #7, !dbg !12222 | |
| ret float %10, !dbg !12223 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @dcmRoll(%struct.Matrixf_t* %0) #0 !dbg !12224 { | |
| %2 = alloca %struct.Matrixf_t*, align 8 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %2, metadata !12225, metadata !DIExpression()), !dbg !12226 | |
| %3 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !12227 | |
| %4 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %3, i32 0, i32 2, !dbg !12227 | |
| %5 = load float*, float** %4, align 8, !dbg !12227 | |
| %6 = getelementptr inbounds float, float* %5, i64 7, !dbg !12227 | |
| %7 = load float, float* %6, align 4, !dbg !12227 | |
| %8 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !12228 | |
| %9 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %8, i32 0, i32 2, !dbg !12228 | |
| %10 = load float*, float** %9, align 8, !dbg !12228 | |
| %11 = getelementptr inbounds float, float* %10, i64 8, !dbg !12228 | |
| %12 = load float, float* %11, align 4, !dbg !12228 | |
| %13 = call float @atan2f(float %7, float %12) #7, !dbg !12229 | |
| ret float %13, !dbg !12230 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @dcmCosRoll(%struct.Matrixf_t* %0) #0 !dbg !12231 { | |
| %2 = alloca %struct.Matrixf_t*, align 8 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %2, metadata !12232, metadata !DIExpression()), !dbg !12233 | |
| %3 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !12234 | |
| %4 = call float @dcmRoll(%struct.Matrixf_t* %3), !dbg !12235 | |
| %5 = call float @cosf(float %4) #7, !dbg !12236 | |
| ret float %5, !dbg !12237 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local float @dcmSinRoll(%struct.Matrixf_t* %0) #0 !dbg !12238 { | |
| %2 = alloca %struct.Matrixf_t*, align 8 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %2, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %2, metadata !12239, metadata !DIExpression()), !dbg !12240 | |
| %3 = load %struct.Matrixf_t*, %struct.Matrixf_t** %2, align 8, !dbg !12241 | |
| %4 = call float @dcmRoll(%struct.Matrixf_t* %3), !dbg !12242 | |
| %5 = call float @sinf(float %4) #7, !dbg !12243 | |
| ret float %5, !dbg !12244 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @dcmApplyRotation(%struct.Matrixf_t* %0, float* %1, float* %2) #0 !dbg !12245 { | |
| %4 = alloca %struct.Matrixf_t*, align 8 | |
| %5 = alloca float*, align 8 | |
| %6 = alloca float*, align 8 | |
| store %struct.Matrixf_t* %0, %struct.Matrixf_t** %4, align 8 | |
| call void @llvm.dbg.declare(metadata %struct.Matrixf_t** %4, metadata !12248, metadata !DIExpression()), !dbg !12249 | |
| store float* %1, float** %5, align 8 | |
| call void @llvm.dbg.declare(metadata float** %5, metadata !12250, metadata !DIExpression()), !dbg !12251 | |
| store float* %2, float** %6, align 8 | |
| call void @llvm.dbg.declare(metadata float** %6, metadata !12252, metadata !DIExpression()), !dbg !12253 | |
| %7 = load %struct.Matrixf_t*, %struct.Matrixf_t** %4, align 8, !dbg !12254 | |
| %8 = getelementptr inbounds %struct.Matrixf_t, %struct.Matrixf_t* %7, i32 0, i32 2, !dbg !12255 | |
| %9 = load float*, float** %8, align 8, !dbg !12255 | |
| %10 = load float*, float** %5, align 8, !dbg !12256 | |
| %11 = load float*, float** %6, align 8, !dbg !12257 | |
| call void @rawdcmApplyRotation(float* %9, float* %10, float* %11), !dbg !12258 | |
| ret void, !dbg !12259 | |
| } | |
| ; Function Attrs: noinline nounwind optnone uwtable | |
| define dso_local void @rawdcmApplyRotation(float* %0, float* %1, float* %2) #0 !dbg !12260 { | |
| %4 = alloca float*, align 8 | |
| %5 = alloca float*, align 8 | |
| %6 = alloca float*, align 8 | |
| %7 = alloca float, align 4 | |
| %8 = alloca float, align 4 | |
| %9 = alloca float, align 4 | |
| store float* %0, float** %4, align 8 | |
| call void @llvm.dbg.declare(metadata float** %4, metadata !12263, metadata !DIExpression()), !dbg !12264 | |
| store float* %1, float** %5, align 8 | |
| call void @llvm.dbg.declare(metadata float** %5, metadata !12265, metadata !DIExpression()), !dbg !12266 | |
| store float* %2, float** %6, align 8 | |
| call void @llvm.dbg.declare(metadata float** %6, metadata !12267, metadata !DIExpression()), !dbg !12268 | |
| call void @llvm.dbg.declare(metadata float* %7, metadata !12269, metadata !DIExpression()), !dbg !12270 | |
| %10 = load float*, float** %4, align 8, !dbg !12271 | |
| %11 = getelementptr inbounds float, float* %10, i64 0, !dbg !12271 | |
| %12 = load float, float* %11, align 4, !dbg !12271 | |
| %13 = load float*, float** %5, align 8, !dbg !12272 | |
| %14 = getelementptr inbounds float, float* %13, i64 0, !dbg !12272 | |
| %15 = load float, float* %14, align 4, !dbg !12272 | |
| %16 = fmul float %12, %15, !dbg !12273 | |
| %17 = load float*, float** %4, align 8, !dbg !12274 | |
| %18 = getelementptr inbounds float, float* %17, i64 1, !dbg !12274 | |
| %19 = load float, float* %18, align 4, !dbg !12274 | |
| %20 = load float*, float** %5, align 8, !dbg !12275 | |
| %21 = getelementptr inbounds float, float* %20, i64 1, !dbg !12275 | |
| %22 = load float, float* %21, align 4, !dbg !12275 | |
| %23 = fmul float %19, %22, !dbg !12276 | |
| %24 = fadd float %16, %23, !dbg !12277 | |
| %25 = load float*, float** %4, align 8, !dbg !12278 | |
| %26 = getelementptr inbounds float, float* %25, i64 2, !dbg !12278 | |
| %27 = load float, float* %26, align 4, !dbg !12278 | |
| %28 = load float*, float** %5, align 8, !dbg !12279 | |
| %29 = getelementptr inbounds float, float* %28, i64 2, !dbg !12279 | |
| %30 = load float, float* %29, align 4, !dbg !12279 | |
| %31 = fmul float %27, %30, !dbg !12280 | |
| %32 = fadd float %24, %31, !dbg !12281 | |
| store float %32, float* %7, align 4, !dbg !12270 | |
| call void @llvm.dbg.declare(metadata float* %8, metadata !12282, metadata !DIExpression()), !dbg !12283 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment